Python 3.3+lzmaterm
lzma.LZMACompressor
streaming compression
An object for streaming LZMA/XZ compression piece by piece, with a choice of format, level and checksum.
Syntax
c = lzma.LZMACompressor(format=FORMAT_XZ, check=-1, preset=None, filters=None)
As with BZ2Compressor, compress() may return empty bytes and only flush() hands over the real tail; after flush() the object takes no more data. FORMAT_RAW needs explicit filters, or you get ValueError. preset 9 compresses better but needs hundreds of megabytes of memory both to compress and to decompress.
Examples
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
See also
Common errors
Open in the full glossarydocs.python.orgReport an inaccuracy