如何解压 python 只包含数据但没有文件名的 xz 文件?

How to unpack xz file with python which contains only data but no filename?

我有一个文件,我可以使用以下命令在 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 文件中不存在的文件或目录信息。

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

tarfile 模块仅适用于...错误...tar 文件。你这里没有一个


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

try:
    import lzma
except ImportError:
    from backports import lzma

print lzma.open('file.xz').read()