Python Glossary English

все Python 3codecsфункция

codecs.getwriter()

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

Возвращает класс StreamWriter для кодировки; его вызывают с двоичным потоком и получают объект, в который пишут str.

Синтаксис

writer = codecs.getwriter(encoding)(stream)

Как и у getreader, результат — класс, а не готовый писатель. Обёртывать нужно двоичный поток: open(path, 'wb'), io.BytesIO или sys.stdout.buffer. Если обёрнут текстовый sys.stdout, запись упадёт с TypeError. Для перекодировки stdout с 3.7 проще sys.stdout.reconfigure(encoding='utf-8').

Примеры

import codecs, io
buf = io.BytesIO()
Writer = codecs.getwriter('utf-8')
Writer(buf).write('я')
print(buf.getvalue())  # → b'\xd1\x8f'
print(Writer is codecs.lookup('utf-8').streamwriter)  # → True

См. также

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