【发布时间】:2014-10-22 12:20:34
【问题描述】:
我有以下代码可以打开一个 .tgz 文件,但是我得到 tarfile.ReadError: file could not be open successfully。
fp = tarfile.open('file.tgz', 'r')
print fp.list()
fp.close()
我可以使用“tar -xvzf file.tgz”提取此存档。显然它与文件的创建方式有关,因为当我使用file 比较两个不同的 .tgz 文件时,我发现了不同之处; file2.tgz 与这段代码一起工作。
$ file file.tgz
file.tgz: gzip compressed data, from FAT filesystem (MS-DOS, OS/2, NT)
$ file file2.tgz
file2.tgz: gzip compressed data, was "", last modified: Tue Aug 19 11:16:10 2014, max compression
任何想法为什么会发生这种情况或我如何修改 file.tgz 以使其与 tarfile 一起使用?
注意:我使用的是 Python 2.7.5。
【问题讨论】:
-
你下载了吗?你检查过它的校验和/哈希是否正常?
-
您是如何将
file.tgz从您的 Windows 机器传输到您的 Linux 机器的?尝试gzip -t file.tgz测试文件完整性。 -
@CristianoAraujo 我可以在我的 Mac 上使用 tar 提取,所以我假设文件是好的。我无权访问生成文件以检查 MD5 总和的机器或人员。
-
@Robᵩ $ gzip -t file.tgz 不产生任何输出。我猜这意味着文件没有问题。
-
我不知道为什么会出现这个错误。我会在 Mac 上使用
tar提取文件,在 Mac 上使用tar创建一个新图像,然后在新图像上运行我的 python 程序。