все Python 3codecsпонятие
codecs.StreamReaderWriter
потоковые кодеки
Обёртка, объединяющая StreamReader и StreamWriter над одним потоком: и читает, и пишет текст. Именно её возвращает codecs.open.
Синтаксис
codecs.StreamReaderWriter(stream, Reader, Writer, errors='strict')
Встретив её в отладчике, знайте: файл открыт через устаревший codecs.open, а не через open. Поведение отличается от io.TextIOWrapper: нет перевода строк, нет атрибута encoding в привычном смысле у нижнего потока, а seek сбрасывает состояние кодеков. Создавать её вручную приходится редко: нужны поток, класс Reader и класс Writer.
Примеры
import codecs, io
f = codecs.StreamReaderWriter(io.BytesIO(), codecs.getreader('utf-8'), codecs.getwriter('utf-8'))
f.write('ёж')
print(f.stream.getvalue()) # → b'\xd1\x91\xd0\xb6'
f.seek(0)
print(f.read()) # → ёж
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности