все 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Сообщить о неточности