Как распаковать файл.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('.')
Другие вопросы по тегам