все Python 3codecsфункция
codecs.iterdecode()
инкрементальные кодеки
Генератор: декодирует поток кусков bytes в куски str инкрементальным декодировщиком, не ломая символы на границах кусков.
Синтаксис
for text in codecs.iterdecode(chunks, encoding, errors='strict'): ...
Удобная обёртка над getincrementaldecoder для цикла по кускам: например, по iter(lambda: f.read(4096), b''). Выдаёт куски текста не той же длины, что входные, а иногда пустые не выдаёт вовсе, — склеивать результат ''.join(...), а не рассчитывать на соответствие. Кодек обязан декодировать bytes: rot13 сюда не подходит. Если файл можно открыть open(..., encoding=...), это проще.
Примеры
import codecs
data = 'Привет'.encode('utf-8')
chunks = [data[:3], data[3:7], data[7:]]
print(list(codecs.iterdecode(chunks, 'utf-8'))) # → ['П', 'ри', 'вет']
print(''.join(codecs.iterdecode(chunks, 'utf-8'))) # → Привет
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности