Python Glossary English

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