Python Glossary English

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