You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用wave模块打开ZIP压缩包中的音频文件?

正确实现方式

你需要先从ZIP压缩包中获取目标音频文件的类文件对象,再将这个对象传给wave.open(),而不是直接传入本地路径。具体代码实现如下:

import zipfile
import wave

# 打开目标ZIP压缩包
archive = zipfile.ZipFile(zip_path, 'r')
# 获取压缩包内音频文件的类文件对象(注意这里传的是音频在ZIP内的相对路径)
with archive.open(audio_path_in_zip) as audio_file:
    # 用wave模块打开这个类文件对象
    wf = wave.open(audio_file, 'rb')
    # 这里可以执行后续操作,比如读取音频参数、数据
    print(f"音频声道数: {wf.getnchannels()}")
    print(f"采样宽度: {wf.getsampwidth()}")
    # 操作完成后关闭wave对象
    wf.close()

关键细节说明:

  • archive.open(audio_path_in_zip)返回的类文件对象,和直接打开本地文件的file对象行为一致,能够被wave.open()正常识别。
  • audio_path_in_zip是音频文件在ZIP包内的相对路径,比如ZIP包内的结构是voices/record.wav,这里就传入该相对路径,而非本地文件的绝对路径。
  • 使用with语句管理ZIP内的文件对象,能自动处理资源释放,避免泄漏。

内容的提问来源于stack exchange,提问作者avocado123123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 00:33:13