Я знаю, что есть модуль под названием pylzma. Но он поддерживает только lzma, а не lzma2.
Мое текущее решение использует subprocess.call()
для вызова программы 7z.
Есть ли способ лучше?
Я знаю, что есть модуль под названием pylzma. Но он поддерживает только lzma, а не lzma2.
Мое текущее решение использует subprocess.call()
для вызова программы 7z.
Есть ли способ лучше?
Вы можете использовать backports.lzma, см. дополнительную информацию: Python 2.7: сжатие данных в формате XZ с использованием модуля lzma< /а>
Тогда это просто вопрос выполнения, например:
from backports import lzma
with open('hello.xz', 'wb') as f:
f.write(lzma.compress(b'hello', format=lzma.FORMAT_XZ))
Или проще (формат XZ по умолчанию):
with lzma.open('hello.xz', 'wb') as f:
f.write(b'hello')
См. http://docs.python.org/dev/library/lzma.html для получения сведений об использовании.