Python Glossary English

все Python 3codecsпонятие

codecs.StreamWriter

потоковые кодеки

Базовый класс потокового кодировщика: оборачивает двоичный поток, а write(str) кодирует текст и пишет байты. Готовый класс даёт codecs.getwriter.

Синтаксис

writer = codecs.getwriter(encoding)(stream, errors='strict')

Классический случай — sys.stdout.buffer в старом коде: codecs.getwriter('utf-8')(sys.stdout.buffer). Сегодня то же делают sys.stdout.reconfigure(encoding='utf-8') или io.TextIOWrapper, и они в отличие от StreamWriter правильно работают с буферизацией и переводом строк. Нижний поток доступен как .stream; закрытие обёртки закрывает и его.

Примеры

import codecs, io
w = codecs.getwriter('cp1251')(io.BytesIO())
w.write('ёж')
print(w.stream.getvalue())  # → b'\xb8\xe6'

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности