Python Glossary English

все Python 3codecsпонятие

codecs.StreamReader

потоковые кодеки

Базовый класс потокового декодировщика: оборачивает двоичный поток и даёт read, readline, readlines, возвращающие str. Готовый класс даёт codecs.getreader.

Синтаксис

reader = codecs.getreader(encoding)(stream, errors='strict')

Это старая альтернатива io.TextIOWrapper, и в новом коде её почти не встретишь: TextIOWrapper быстрее, переводит концы строк и понимает tell/seek. StreamReader не переводит '\r\n' и по-своему режет строки: readline считает границей и редкие Юникод-разделители вроде U+2028. Нужен он, в основном, для кодеков без инкрементального интерфейса и для чтения чужого старого кода.

Примеры

import codecs, io
raw = io.BytesIO('a\u2028b\n'.encode('utf-8'))
print(codecs.getreader('utf-8')(raw).readlines())  # → ['a\u2028', 'b\n']
raw.seek(0)
print(io.TextIOWrapper(raw, encoding='utf-8').readlines())  # → ['a\u2028b\n']

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности