Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there an equivalent of gzip.open() for .7z files?

I have to frequently search through a couple of .7z (zipped with LZMA) files. I don't have enough memory to have them unpacked at the same time or to change the archive to .gz. At the moment I unpack one, search for what I need, delete what was extracted, unpack the next. I want to go through the archives in the same way as with gzip:

f = gzip.open('archive.gz')
for i in f:
    do stuff

Is there a module/way to do this with .7z files?

like image 327
Niek de Klein Avatar asked Sep 18 '13 09:09

Niek de Klein


1 Answers

There is a built in module in Python >= 3.3: http://docs.python.org/3.3/library/lzma

And there is also a backport of the module on the PyPI: https://pypi.python.org/pypi/backports.lzma

(If you're on Windows and you don't want to compile it by yourself you can use the PyLZMA package from Unofficial Windows Binaries for Python).

like image 89
Viktor Kerkez Avatar answered Oct 16 '22 06:10

Viktor Kerkez