Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.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 tarfile无法提取压缩文件夹_Python_Tar - Fatal编程技术网

Python tarfile无法提取压缩文件夹

Python tarfile无法提取压缩文件夹,python,tar,Python,Tar,对于用python编写的构建脚本,我需要提取.tar.gz存档()的内容 在中,可以通过这种方式提取,我将其示例文件替换为我要提取的存档: import tarfile tar = tarfile.open("lua-5.3.5.tar.gz") tar.extractall() tar.close() Python仍然返回一个异常: Traceback (most recent call last): File "test.py", line 2, in <module>

对于用python编写的构建脚本,我需要提取
.tar.gz
存档()的内容

在中,可以通过这种方式提取,我将其示例文件替换为我要提取的存档:

import tarfile

tar = tarfile.open("lua-5.3.5.tar.gz")
tar.extractall()
tar.close()
Python仍然返回一个异常:

Traceback (most recent call last):
  File "test.py", line 2, in <module>
    tar = tarfile.open("lua-5.3.5.tar.gz")
  File "C:\Python37\lib\tarfile.py", line 1578, in open
    raise ReadError("file could not be opened successfully")
tarfile.ReadError: file could not be opened successfully
回溯(最近一次呼叫最后一次):
文件“test.py”,第2行,在
tar=tarfile.open(“lua-5.3.5.tar.gz”)
文件“C:\Python37\lib\tarfile.py”,第1578行,打开
raise ReadError(“文件无法成功打开”)
tarfile.ReadError:无法成功打开文件
当然,我在与归档文件相同的文件夹中运行此脚本,但它无法提取内容


如何解决此问题?

该文件实际上是一个
tar.gz
文件,因此您必须执行以下操作:

import tarfile
tar = tarfile.open("lua-5.3.5.tar.gz", "r:gz")
tar.extractall()
tar.close()

事实证明,在重新安装Python环境(没有冒险,没有收获)后,它成功了。我有点不明白是什么导致了这个错误,很可能是文件损坏,但我经常更新我的软件包,这很奇怪。

fileobj=self.myfileobj=builtins.open(filename,mode或'rb')
FileNotFoundError:[Errno 2]没有这样的文件或目录:“lua-5.3.5.tar.gz”
谢谢您的回复。异常不再出现,但是,似乎没有提取任何文件,另一方面,归档文件似乎被新的空归档文件重写。你知道怎么解决这个问题吗?通过在文档和互联网上搜索,您编写的代码应该符合预期,但在我的情况下显然不起作用。请编辑您的答案,解释它如何回答问题。尽管到目前为止在此处发布了答案,但您尝试使用的代码应该可以正常工作,无需修改(至少,在Python 3.7中使用
tarfile
,我可以打开并提取
.tar.gz
,而无需任何附加参数)。您能告诉我们您试图解包的特定tar文件吗?您是否验证了它在使用
tar
cli时是否正常工作?是的,确实如此。我发布了回复,Python环境的重新安装似乎解决了问题。
import tarfile

tar = tarfile.open("lua-5.3.5.tar.gz", "w|gz")
tar.extractall()
tar.close()