Python 3.3+lzmaфункция
lzma.compress()
сжатие в памяти
Сжимает байты алгоритмом LZMA за один вызов; по умолчанию результат — контейнер .xz с контрольной суммой CRC64.
Синтаксис
data = lzma.compress(data, format=FORMAT_XZ, check=-1, preset=None, filters=None)
LZMA обычно жмёт плотнее bzip2 и zlib, но сжатие медленнее всех трёх; распаковка при этом быстрая. Строку нужно закодировать в bytes. Сжатые байты зависят от версии liblzma и параметров, поэтому в тестах сравнивают круговое сжатие-распаковку, а не результат. format=FORMAT_ALONE нужен только для совместимости со старыми .lzma.
Примеры
import lzma
raw = b'abcdef' * 1000
packed = lzma.compress(raw, preset=6)
print(len(packed) < len(raw), lzma.decompress(packed) == raw) # → True True
print(packed[:6]) # → b'\xfd7zXZ\x00' — сигнатура контейнера xz
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности