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