Python Glossary English

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