Python Glossary English

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