Как распаковать файл.xz, содержащий несколько папок / файлов, за один раз?
Я пытаюсь распаковать файл.xz, в котором есть несколько фодеров и файлов. Я не вижу прямой способ сделать это с помощью модуля lzma. Вот что я вижу для метода распаковки:
In [1]: import lzma
In [2]: f = lzma.decompress("test.tar.xz")
---------------------------------------------------------------------------
error Traceback (most recent call last)
<ipython-input-2-3b08bf488f9d> in <module>()
----> 1 f = lzma.decompress("test.tar.xz")
error: unknown file format
Существуют ли другие способы распаковать этот файл, чтобы он создал результирующую папку?
1 ответ
Решение
Python 3.3
import tarfile
with tarfile.open('test.tar.xz') as f:
f.extractall('.')
Python 2.7
Нужна лзма в Python 2.7
import contextlib
import lzma
import tarfile
with contextlib.closing(lzma.LZMAFile('test.tar.xz')) as xz:
with tarfile.open(fileobj=xz) as f:
f.extractall('.')