我有下面的代码来打开一个.tgz文件,但是我得到了tarfile.ReadError:文件无法成功打开。
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。
1条答案
按热度按时间xxhby3vn1#
在我的例子中,这个文件被 double 压缩了。我按照Rob的建议尝试了
gzip -l --verbose file.gz
,发现关键提示压缩比为负。运行未归档的
tar -xvf output.gz
没有问题。但是Python的tarfile似乎认为它被损坏了:这是因为tar似乎可以处理多个级别的压缩。如果你解压缩一次,它应该可以工作:
现在压缩比看起来是正确的: