web-dev-qa-db-ja.com

データのみを含みファイル名を含まないpythonでxzファイルを解凍する方法は?

次のコマンドを使用して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ファイルに存在しないファイルまたはディレクトリ情報が必要です。

では、ヘッダー情報なしでファイルを解凍するにはどうすればよいですか?

9
MiB_Coder

tarfileモジュールは...エラー...tarファイル専用です。ここにあるのは1つではありません。


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()
13
Charles Duffy