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