Python 3.3+lzmaпонятие
lzma.LZMADecompressor
потоковое сжатие
Объект для потоковой распаковки LZMA/XZ; по умолчанию сам определяет формат входа.
Синтаксис
d = lzma.LZMADecompressor(format=FORMAT_AUTO, memlimit=None, filters=None)
Один объект — один поток: после конца eof=True, лишние байты лежат в unused_data, а повторный вызов даёт EOFError. Атрибут check сообщает, какая контрольная сумма записана в потоке, но становится известен только после разбора заголовка. memlimit ограничивает память декодера и спасает от архивов, сжатых с огромным словарём.
Примеры
import lzma
d = lzma.LZMADecompressor()
packed = lzma.compress(b'payload', check=lzma.CHECK_SHA256)
print(d.decompress(packed + b'extra'), d.eof, d.unused_data) # → b'payload' True b'extra'
print(d.check == lzma.CHECK_SHA256) # → True
try:
d.decompress(b'x')
except EOFError as e:
print(e) # → Already at end of stream
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности