内容表

  • wave — 读写 WAV 文件
    • Wave_read 对象
    • Wave_write 对象

上一话题

多媒体服务

下一话题
就业培训     下载中心     Wiki     联络
登录   注册

Log
  1. 首页
  2. Python 3.12.4
  3. 索引
  4. 模块
  5. 下一
  6. 上一
  7. Python 标准库
  8. 多媒体服务
  9. wave — 读写 WAV 文件

wave — 读写 WAV 文件 ¶

源代码: Lib/wave.py


The wave module provides a convenient interface to the Waveform Audio “WAVE” (or “WAV”) file format. Only uncompressed PCM encoded wave files are supported.

Changed in version 3.12: 支持 WAVE_FORMAT_EXTENSIBLE headers was added, provided that the extended format is KSDATAFORMAT_SUBTYPE_PCM .

The wave 模块定义了以下函数和异常:

wave. open ( file , mode = None ) ¶

若 file 是字符串,按该名称打开文件,否则将其视为像文件对象。 mode 可以是:

'rb'

只读模式。

'wb'

只写模式。

注意:它不允许读/写 WAV 文件。

A mode of 'rb' 返回 Wave_read 对象,而 mode of 'wb' 返回 Wave_write 对象。若 mode 被省略且像文件对象被传递作为 file , file.mode 被用作默认值对于 mode .

若传入像文件对象,wave 对象将不关闭它当它的 close() 方法被调用;关闭文件对象是调用者的责任。

The open() 函数可以用于 with 语句。当 with 阻塞完成, Wave_read.close() or Wave_write.close() 方法被调用。

3.4 版改变: 添加支持不可寻址文件。

exception wave. Error ¶

错误被引发,当某些东西因违反 WAV 规范或命中实现缺陷而不可实现时。

Wave_read 对象 ¶

class wave. Wave_read ¶

Read a WAV file.

Wave_read 对象,如返回通过 open() ,拥有下列方法:

close ( ) ¶

关闭流若它被打开通过 wave ,并使实例不可用。这是在对象集合上自动调用的。

getnchannels ( ) ¶

返回音频通道数 ( 1 为单声道, 2 为立体声)。

getsampwidth ( ) ¶

返回采样宽度,以字节为单位。

getframerate ( ) ¶

返回采样频率。

getnframes ( ) ¶

返回音频帧数。

getcomptype ( ) ¶

返回压缩类型 ( 'NONE' 是唯一支持的类型)。

getcompname ( ) ¶

人性化可读版本的 getcomptype() 。通常 'not compressed' 平行 'NONE' .

getparams ( ) ¶

返回 namedtuple() (nchannels, sampwidth, framerate, nframes, comptype, compname) ,相当于输出对于 get*() 方法。

readframes ( n ) ¶

读取并返回最多 n 帧的音频,作为 bytes 对象。

rewind ( ) ¶

将文件指针倒带到音频流的开头。

定义以下 2 方法是为了兼容 aifc 模块,且不会做任何有趣的事情。

getmarkers ( ) ¶

返回 None .

getmark ( id ) ¶

引发错误。

以下 2 种法定义了在它们之间兼容的 position 术语,否则从属实现。

setpos ( pos ) ¶

将文件指针设置到指定位置。

tell ( ) ¶

返回当前文件指针位置。

Wave_write 对象 ¶

class wave. Wave_write ¶

Write a WAV file.

Wave_write 对象,如返回通过 open() .

对于可寻址输出流, wave 头会自动更新以反映实际写入的帧数。对于不可寻址流, nframes 值必须精确,当写入第一帧数据时。精确的 nframes 值可以达成通过调用 setnframes() or setparams() 采用将要写入的帧数先于 close() 被调用然后使用 writeframesraw() 以写入帧数据,或通过调用 writeframes() 采用要写入的所有帧数据。在后一种情况下, writeframes() 将计算数据中的帧数并设置 nframes 故此,在写入帧数据之前。

3.4 版改变: 添加支持不可寻址文件。

Wave_write objects have the following methods:

close ( ) ¶

确保 nframes 正确,并关闭文件若它的打开是通过 wave 。此方法被调用当收集对象时。它会引发异常,若输出流不可寻址且 nframes 不匹配实际写入帧数。

setnchannels ( n ) ¶

设置通道数。

setsampwidth ( n ) ¶

将采样宽度设为 n 字节。

setframerate ( n ) ¶

将帧速率设为 n .

3.2 版改变: 此方法的非整型输入,会被舍入到最近整数。

setnframes ( n ) ¶

将帧数设为 n 。这稍后会改变,若实际写入帧数不同 (此更新尝试会引发错误,若输出流不可寻址)。

setcomptype ( type , name ) ¶

设置压缩类型和描述。目前,仅压缩类型 NONE 受支持,意味着不压缩。

setparams ( tuple ) ¶

The tuple 应该为 (nchannels, sampwidth, framerate, nframes, comptype, compname) ,具有有效值对于 set*() 方法。设置所有参数。

tell ( ) ¶

返回文件的当前位置,具有相同免责声明对于 Wave_read.tell() and Wave_read.setpos() 方法。

writeframesraw ( data ) ¶

写入音频帧,不校正 nframes .

3.4 版改变: 任何 像字节对象 现接受。

writeframes ( data ) ¶

写入音频帧并确保 nframes 是正确的。它将引发错误,若输出流不可寻址且已写入帧总数之前 data 已写入不匹配的先前设置值对于 nframes .

3.4 版改变: 任何 像字节对象 现接受。

注意:设置任何参数无效,之前有调用 writeframes() or writeframesraw() ,且任何试图这样做会引发 wave.Error .

内容表

  • wave — 读写 WAV 文件
    • Wave_read 对象
    • Wave_write 对象

上一话题

多媒体服务

下一话题

colorsys — 在颜色系统之间转换

本页

  • 报告 Bug
  • 展示源

快速搜索

键入搜索术语或模块、类、函数名称。

  1. 首页
  2. Python 3.12.4
  3. 索引
  4. 模块
  5. 下一
  6. 上一
  7. Python 标准库
  8. 多媒体服务
  9. wave — 读写 WAV 文件

版权所有  © 2014-2026 乐数软件    

工业和信息化部: 粤ICP备14079481号-1