Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何一次性解压包含多个文件夹/文件的.xz文件?_Python_Lzma - Fatal编程技术网

Python 如何一次性解压包含多个文件夹/文件的.xz文件?

Python 如何一次性解压包含多个文件夹/文件的.xz文件?,python,lzma,Python,Lzma,我正在尝试解压缩一个.xz文件,其中包含一些文件夹和文件。我没有看到使用lzma模块直接实现这一点的方法。这就是我看到的解压方法: In [1]: import lzma In [2]: f = lzma.decompress("test.tar.xz") --------------------------------------------------------------------------- error Tr

我正在尝试解压缩一个.xz文件,其中包含一些文件夹和文件。我没有看到使用lzma模块直接实现这一点的方法。这就是我看到的解压方法:

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('.')