Python 如何一次性解压包含多个文件夹/文件的.xz文件?
我正在尝试解压缩一个.xz文件,其中包含一些文件夹和文件。我没有看到使用lzma模块直接实现这一点的方法。这就是我看到的解压方法:Python 如何一次性解压包含多个文件夹/文件的.xz文件?,python,lzma,Python,Lzma,我正在尝试解压缩一个.xz文件,其中包含一些文件夹和文件。我没有看到使用lzma模块直接实现这一点的方法。这就是我看到的解压方法: In [1]: import lzma In [2]: f = lzma.decompress("test.tar.xz") --------------------------------------------------------------------------- error Tr
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]中的:导入lzma
在[2]中:f=lzma.decompress(“test.tar.xz”)
---------------------------------------------------------------------------
错误回溯(最近一次呼叫上次)
在()
---->1 f=lzma.减压(“test.tar.xz”)
错误:未知的文件格式
是否有其他方法可以取消压缩此文件,以便创建结果文件夹?Python 3.3
Python 2.7
Python2.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('.')
falsetru,我决定使用Python 3,因为tarfile内置了对xz压缩的支持。我决定在Python2.7中不使用lzma。谢谢:)在Python3.6中,对于扩展名为xz的LZMA压缩文件,这对我来说不起作用。我猜它们不一定是tar文件?我获取
tarfile.ReadError:文件无法成功打开
。相反,我使用的答案来自contents=lzma.open('file.xz').read()
我现在意识到这不是最初的问题,但也许我的评论可以帮助犯同样错误的其他人。这不可能是python2.7的全部。我安装了pyliblzma,但仍然得到未知的压缩类型“xz”
不确定这是否会出现在主题上。我正在调查中。如果我发现了什么,我会告诉你的。
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('.')