wave
--- Read and write WAV filesSource code: Lib/wave.py
[UNKNOWN NODE transition]The wave
module provides a convenient interface to the WAV sound format.
It does not support compression/decompression, but it does support mono/stereo.
The wave
module defines the following function and exception:
wave.open(file[, mode])[source]
If file is a string, open the file by that name, otherwise treat it as a seekable file-like object. mode can be any of
'r'
,'rb'
- Read only mode.
'w'
,'wb'
- Write only mode.
Note that it does not allow read/write WAV files.
A mode of 'r'
or 'rb'
returns a Wave_read
object, while a
mode of 'w'
or 'wb'
returns a Wave_write
object. If
mode is omitted and a file-like object is passed as file, file.mode
is used as the default value for mode (the 'b'
flag is still added if
necessary).
If you pass in a file-like object, the wave object will not close it when its
close()
method is called; it is the caller's responsibility to close
the file object.
wave.openfp(file, mode)
A synonym for open()
, maintained for backwards compatibility.
exception wave.Error[source]
An error raised when something is impossible because it violates the WAV specification or hits an implementation deficiency.
Wave_read objects, as returned by open()
, have the following methods:
Wave_read.close()[source]
Close the stream if it was opened by wave
, and make the instance
unusable. This is called automatically on object collection.
Wave_read.getnchannels()[source]
Returns number of audio channels (1
for mono, 2
for stereo).
Wave_read.getsampwidth()[source]
Returns sample width in bytes.
Wave_read.getframerate()[source]
Returns sampling frequency.
Wave_read.getnframes()[source]
Returns number of audio frames.
Wave_read.getcomptype()[source]
Returns compression type ('NONE'
is the only supported type).
Wave_read.getcompname()[source]
Human-readable version of getcomptype()
. Usually 'not compressed'
parallels 'NONE'
.
Wave_read.getparams()[source]
Returns a tuple (nchannels, sampwidth, framerate, nframes, comptype,
compname)
, equivalent to output of the get*()
methods.
Wave_read.readframes(n)[source]
Reads and returns at most n frames of audio, as a string of bytes.
Wave_read.rewind()[source]
Rewind the file pointer to the beginning of the audio stream.
The following two methods are defined for compatibility with the aifc
module, and don't do anything interesting.
Wave_read.getmarkers()[source]
Returns None
.
Wave_read.getmark(id)[source]
Raise an error.
The following two methods define a term "position" which is compatible between them, and is otherwise implementation dependent.
Wave_read.setpos(pos)[source]
Set the file pointer to the specified position.
Wave_read.tell()[source]
Return current file pointer position.
Wave_write objects, as returned by open()
, have the following methods:
Wave_write.close()[source]
Make sure nframes is correct, and close the file if it was opened by
wave
. This method is called upon object collection.
Wave_write.setnchannels(n)[source]
Set the number of channels.
Wave_write.setsampwidth(n)[source]
Set the sample width to n bytes.
Wave_write.setframerate(n)[source]
Set the frame rate to n.
Wave_write.setnframes(n)[source]
Set the number of frames to n. This will be changed later if more frames are written.
Wave_write.setcomptype(type, name)[source]
Set the compression type and description. At the moment, only compression type
NONE
is supported, meaning no compression.
Wave_write.setparams(tuple)[source]
The tuple should be (nchannels, sampwidth, framerate, nframes, comptype,
compname)
, with values valid for the set*()
methods. Sets all
parameters.
Wave_write.tell()[source]
Return current position in the file, with the same disclaimer for the
Wave_read.tell()
and Wave_read.setpos()
methods.
Wave_write.writeframesraw(data)[source]
Write audio frames, without correcting nframes.
Wave_write.writeframes(data)[source]
Write audio frames and make sure nframes is correct.
Note that it is invalid to set any parameters after calling writeframes()
or writeframesraw()
, and any attempt to do so will raise
wave.Error
.