如何在python代码中使用lzma2?

Huo*_*Huo 5 python compression 7zip lzma

我知道有一个名为pylzma的模块.但它只支持lzma,而不支持lzma2.

我目前的解决方案是subprocess.call()用来调用7z程序.

有没有更好的办法?

小智 1

您可以使用backports.lzma,请参阅了解更多信息:Python 2.7: 使用“lzma”模块压缩 XZ 格式的数据

那么只需执行以下操作即可:

from backports import lzma

with open('hello.xz', 'wb') as f:
    f.write(lzma.compress(b'hello', format=lzma.FORMAT_XZ))
Run Code Online (Sandbox Code Playgroud)

或者更简单(XZ 格式是默认格式):

with lzma.open('hello.xz', 'wb') as f:
    f.write(b'hello')
Run Code Online (Sandbox Code Playgroud)

有关使用详细信息,请参阅http://docs.python.org/dev/library/lzma.html