Python Glossary English

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

codecs.getincrementalencoder()

инкрементальные кодеки

Возвращает класс инкрементального кодировщика: он кодирует текст кусками и помнит состояние между вызовами, например что BOM уже записан.

Синтаксис

enc = codecs.getincrementalencoder(encoding)(errors='strict')

Для UTF-8 разницы с str.encode почти нет: у неё нет состояния. Разница видна у кодировок с BOM: 'a'.encode('utf-16') и 'b'.encode('utf-16') по отдельности дадут два BOM посреди файла, а инкрементальный кодировщик пишет его один раз. То же с 'utf-8-sig'. После reset() кодировщик снова считает поток новым и напишет BOM ещё раз.

Примеры

import codecs
enc = codecs.getincrementalencoder('utf-8-sig')()
print(enc.encode('a'), enc.encode('b'))  # → b'\xef\xbb\xbfa' b'b'
print('a'.encode('utf-8-sig'), 'b'.encode('utf-8-sig'))  # → b'\xef\xbb\xbfa' b'\xef\xbb\xbfb'

См. также

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