Python Glossary English

все Python 3codecsфункция

codecs.getreader()

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

Возвращает класс StreamReader для кодировки; его вызывают с двоичным потоком и получают объект, читающий str.

Синтаксис

reader = codecs.getreader(encoding)(stream)

Частая ошибка — передать поток прямо в getreader: getreader('utf-8')(f) — две пары скобок, первая даёт класс. Поток должен быть двоичным: текстовый файл из open(..., 'r') отдаст str, и декодирование упадёт. Для файлов и сокетов (sock.makefile) io.TextIOWrapper обычно лучше.

Примеры

import codecs, io
raw = io.BytesIO('строка 1\nстрока 2\n'.encode('cp1251'))
Reader = codecs.getreader('cp1251')
r = Reader(raw)
print(r.readline().strip())  # → строка 1
print(r.readlines())  # → ['строка 2\n']

См. также

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