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