Документация Python неофициальный перевод

wave.md

236 строк · 8.2 КБ · обычная страница · сырой текст · скачать

1> **Источник:** https://python-all.ru/3.0/library/wave.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# `wave` – чтение и запись WAV-файлов89Модуль `wave` предоставляет удобный интерфейс для работы со звуковым форматом WAV. Он не поддерживает сжатие/распаковку, но поддерживает моно и стерео.1011Модуль `wave` определяет следующие функцию и исключение:1213#### `[wave.open]wave.open(file[, mode])`1415Если *file* – строка, открыть файл с этим именем, иначе он рассматривается как перемещаемый (seekable) файлоподобный объект. *mode* может быть одним из следующих значений:1617**`'r'`, `'rb'`**1819Режим только для чтения.2021**`'w'`, `'wb'`**2223Режим только для записи.2425Обратите внимание: не поддерживаются WAV-файлы, открытые одновременно на чтение и запись.2627Режим *mode* со значением `'r'` или `'rb'` возвращает объект `Wave_read`, а режим *mode* со значением `'w'` или `'wb'` возвращает объект `Wave_write`. Если *mode* опущен и в качестве *file* передан файлоподобный объект, то в качестве значения по умолчанию для *mode* используется `file.mode` (флаг `'b'` при необходимости всё равно добавляется).2829#### `[wave.openfp]wave.openfp(file, mode)`3031Синоним для3233[`open()`](https://python-all.ru/3.0/library/functions.html#open)3435, сохранён для обратной совместимости.3637#### `[wave.Error]exception wave.Error`3839Исключение, возникающее, когда какое-либо действие невозможно, поскольку оно нарушает спецификацию WAV или сталкивается с недостатком реализации.4041## Объекты Wave\_read4243Объекты Wave\_read, возвращаемые функцией [`open()`](https://python-all.ru/3.0/library/functions.html#open), имеют следующие методы:4445#### `[wave.Wave_read.close]Wave_read.close()`4647Закрывает поток и делает экземпляр непригодным для использования. Вызывается автоматически при сборке объекта.4849#### `[wave.Wave_read.getnchannels]Wave_read.getnchannels()`5051Возвращает количество аудиоканалов (5253`1`5455для моно,5657`2`5859для стерео).6061#### `[wave.Wave_read.getsampwidth]Wave_read.getsampwidth()`6263Возвращает ширину выборки в байтах.6465#### `[wave.Wave_read.getframerate]Wave_read.getframerate()`6667Возвращает частоту дискретизации.6869#### `[wave.Wave_read.getnframes]Wave_read.getnframes()`7071Возвращает количество аудиофреймов.7273#### `[wave.Wave_read.getcomptype]Wave_read.getcomptype()`7475Возвращает тип сжатия (7677`'NONE'`7879– единственный поддерживаемый тип).8081#### `[wave.Wave_read.getcompname]Wave_read.getcompname()`8283Человекочитаемая версия8485[`getcomptype()`](https://python-all.ru/3.0/library/wave.html#wave.Wave_read.getcomptype)8687. Обычно8889`'not compressed'`9091соответствует9293`'NONE'`9495.9697#### `[wave.Wave_read.getparams]Wave_read.getparams()`9899`(nchannels, sampwidth, framerate, nframes, comptype, compname)`100101, эквивалентен результату методов102103`get*()`104105.106107#### `[wave.Wave_read.readframes]Wave_read.readframes(n)`108109Читает и возвращает не более110111*n*112113фреймов аудио в виде строки байтов.114115#### `[wave.Wave_read.rewind]Wave_read.rewind()`116117Перемещает указатель файла в начало аудиопотока.118119Следующие два метода определены для совместимости с модулем [`aifc`](https://python-all.ru/3.0/library/aifc.html#module-aifc) и не делают ничего интересного.120121#### `[wave.Wave_read.getmarkers]Wave_read.getmarkers()`122123Возвращает124125`None`126127.128129#### `[wave.Wave_read.getmark]Wave_read.getmark(id)`130131Возбуждает исключение.132133Следующие два метода определяют термин «позиция», совместимый между ними, а в остальном зависящий от реализации.134135#### `[wave.Wave_read.setpos]Wave_read.setpos(pos)`136137Устанавливает указатель файла на указанную позицию.138139#### `[wave.Wave_read.tell]Wave_read.tell()`140141Возвращает текущую позицию указателя файла.142143## Объекты Wave\_write144145Объекты Wave\_write, возвращаемые функцией [`open()`](https://python-all.ru/3.0/library/functions.html#open), имеют следующие методы:146147#### `[wave.Wave_write.close]Wave_write.close()`148149Убедиться, что150151*nframes*152153указано верно, и закрыть файл. Этот метод вызывается при удалении объекта.154155#### `[wave.Wave_write.setnchannels]Wave_write.setnchannels(n)`156157Устанавливает количество каналов.158159#### `[wave.Wave_write.setsampwidth]Wave_write.setsampwidth(n)`160161Устанавливает ширину семпла равной162163*n*164165байт.166167#### `[wave.Wave_write.setframerate]Wave_write.setframerate(n)`168169Устанавливает частоту дискретизации равной170171*n*172173.174175#### `[wave.Wave_write.setnframes]Wave_write.setnframes(n)`176177Устанавливает количество фреймов в178179*n*180181. Это значение будет изменено позже, если будет записано больше фреймов.182183#### `[wave.Wave_write.setcomptype]Wave_write.setcomptype(type, name)`184185Устанавливает тип сжатия и описание. На данный момент поддерживается только тип сжатия186187`NONE`188189, что означает отсутствие сжатия.190191#### `[wave.Wave_write.setparams]Wave_write.setparams(tuple)`192193Кортеж194195*tuple*196197должен быть198199`(nchannels, sampwidth, framerate, nframes, comptype, compname)`200201, с допустимыми значениями для методов202203`set*()`204205. Устанавливает все параметры.206207#### `[wave.Wave_write.tell]Wave_write.tell()`208209Возвращает текущую позицию в файле с теми же оговорками, что и методы210211[`Wave_read.tell()`](https://python-all.ru/3.0/library/wave.html#wave.Wave_read.tell)212213и214215[`Wave_read.setpos()`](https://python-all.ru/3.0/library/wave.html#wave.Wave_read.setpos)216217.218219#### `[wave.Wave_write.writeframesraw]Wave_write.writeframesraw(data)`220221Записывает аудиокадры без коррекции222223*nframes*224225.226227#### `[wave.Wave_write.writeframes]Wave_write.writeframes(data)`228229Записывает аудиокадры и проверяет, что230231*nframes*232233корректен.234235Обратите внимание, что задавать какие-либо параметры после вызова `writeframes()` или `writeframesraw()` недопустимо, и любая попытка сделать это вызовет [`wave.Error`](https://python-all.ru/3.0/library/wave.html#wave.Error).236