Python 3.3+lzmaпонятие
lzma.LZMACompressor
потоковое сжатие
Объект для потокового сжатия LZMA/XZ по кускам с выбором формата, уровня и контрольной суммы.
Синтаксис
c = lzma.LZMACompressor(format=FORMAT_XZ, check=-1, preset=None, filters=None)
Как и у BZ2Compressor, compress() может вернуть пустые байты, а настоящий хвост отдаёт только flush(); после flush() объект не годится для новых данных. Формат FORMAT_RAW требует явного filters, иначе ValueError. Уровень preset 9 жмёт лучше, но требует сотни мегабайт памяти и при сжатии, и при распаковке.
Примеры
import lzma
c = lzma.LZMACompressor()
data = b''.join(c.compress(b'chunk ' * 500) for _ in range(4)) + c.flush()
print(lzma.decompress(data) == b'chunk ' * 2000) # → True
try:
lzma.LZMACompressor(format=lzma.FORMAT_RAW)
except ValueError as e:
print(e) # → Must specify filters for FORMAT_RAW
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности