python:使用gzip文件行走tar存档

时间:2011-01-28 18:44:35

标签: python gzip tar

我有一些.tar文件(ungzipped)。 每个都有一些.gz文件。

我需要浏览.tar文件并获取所有其他文件的未压缩内容。

所以我写道:

#!/usr/bin/python2.5 -u

import tarfile
import zlib

ar = tarfile.open('20101231.tar', 'r')

for item in ar:
    if item.name[-3:] == ".gz":
        print zlib.decompress(ar.extractfile(item).read())

f.close()

但它不起作用! 错误:“zlib.error:解压缩数据时出错-3:错误的标题检查”

但我可以做'tar xvf 20101231.tar&& gzip -d 20101231 / some_file.gz',一切都很完美! 但我不能从python

做到这一点

2 个答案:

答案 0 :(得分:3)

尝试tarfile.open('20101231.tar', 'r:')明确禁用压缩。

答案 1 :(得分:0)

试试这个:

this_tar = tarfile.open(filepath)
for file in this_tar.getnames():
    ...do stuff...

返回 TAR 中的每个文件。