5

I know there is a module called pylzma. But it only support lzma, not lzma2.

My current solution is using subprocess.call() to call 7z program.

Is there a better way?

Huo
  • 798
  • 3
  • 12
  • 22

1 Answers1

1

You can use backports.lzma, see for more info: Python 2.7: Compressing data with the XZ format using the "lzma" module

Then it's simply a matter of doing e.g.:

from backports import lzma

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

Or simpler (XZ format is default):

with lzma.open('hello.xz', 'wb') as f:
    f.write(b'hello')

See http://docs.python.org/dev/library/lzma.html for usage details.

Community
  • 1
  • 1
Dagh Bunnstad
  • 189
  • 2
  • 5