все Python 3ioпонятие
io.TextIOWrapper
обёртка
Оборачивает бинарный поток, добавляя кодирование/декодирование текста. Используется в open() внутри.
Синтаксис
io.TextIOWrapper(buffer, encoding=None, errors=None, newline=None)
Закрытие обёртки закрывает и нижележащий бинарный поток — если он ещё нужен, сначала отвяжите его через detach(). Два неочевидных момента: при newline=None перевод строки при записи превращается в os.linesep (на Windows это пара CR LF), а seek() у текстового потока принимает не произвольные смещения, а только значения, ранее полученные от tell().
Примеры
import io
raw = io.BytesIO(b'hello')
wrapper = io.TextIOWrapper(raw, encoding='utf-8')
wrapper.read() # → 'hello'
import io
# Запись:
buf = io.BytesIO()
tw = io.TextIOWrapper(buf, encoding='utf-8')
tw.write('мир')
tw.flush()
buf.getvalue() # → b'\xd0\xbc\xd0\xb8\xd1\x80'
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности