我有一个文件,在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文件中并不存在。
那么,我该如何解压无头信息的文件呢?
binary_data_buffer = lzma.open('test.txt.xz').read()
,然后string_buffer = binary_data_buffer.decode('utf-8')
,最后将其写入文件。但我相信有更优雅的方法来做到这一点。 - Petelzma.open('test.txt.xz').read().decode('utf-8')
这句话有点冗长?但是你可以使用lzma.open('test.txt.xz', mode='rt', encoding='utf-8')
,它可以直接解码多字节字符。 - Charles Duffy