9

我有一个文件,可以在linux下使用以下命令解压:

unxz < file.xz > file.txt

我怎样才能使用python做同样的事情?如果我使用 python3 和 tarfile 模块并执行以下操作:

import sys
import tarfile
try:
    with tarfile.open('temp.xz', 'r:xz') as t:
        t.extract()
except Exception as e:
    print("Error:", e.strerror)

我得到了例外:ReadError('invalid header',)。因此,显然它需要一些 xz 文件中不存在的文件或目录信息。

那么如何解压没有头信息的文件呢?

4

1 回答 1

22

tarfile模块仅适用于... err... tar文件。你在这里拥有的不是一个。


XZ 支持在 Python 3.3 的 LZMA 模块中可用。在 Python 2.x 中,您需要backports.lzma.

try:
    import lzma
except ImportError:
    from backports import lzma

print lzma.open('file.xz').read()
于 2017-02-07T00:36:27.733 回答