如何从tar读取gz压缩文件

时间:2017-04-05 07:44:52

标签: python gzip tarfile

让我们说我们有一个tar文件,后者又包含多个gzip压缩文件。我希望能够在不压缩tar文件或单个gzip文件的情况下读取这些gzip文件的内容。我试图在python中使用tarfile模块。

1 个答案:

答案 0 :(得分:1)

这可能有用,我还没有测试过,但这有主要的想法和相关的工具。它遍历tar中的文件,如果它们被gzip压缩,则将它们读入file_contents变量:

import tarfile as t
import gzip as g 
for member in t.open("your.gz.tar").getmembers():
    fo=t.extractfile(member)
    file_contents = g.GzipFile(fileobj=fo).read()

注意:如果文件对于内存而言太大,那么请考虑将流式阅读器(块中的块)视为已链接。

如果你有基于成员(TarInfo)对象的其他逻辑,你可以使用这些:

请参阅: