How to walk a tar.gz file that contains zip files without extraction
我有一个大的tar.gz文件来使用python脚本进行分析。 tar.gz文件包含许多可能在其中嵌入其他.gz文件的zip文件。 在提取文件之前,我想浏览压缩文件中的目录结构,以查看是否存在某些文件或目录。 通过查看tarfile和zipfile模块,我没有看到任何允许我在tar.gz文件中获取zip文件内容表的现有函数。
感谢您的帮助,
如果不解压缩文件就无法实现。 但是,如果您不想将其提取到磁盘,则无需将其提取到磁盘。 您可以使用
1 2 3 4 5 6 7 | $ cat bar/baz.txt This is bar/baz.txt. $ tar cvfz bar.tgz bar bar/ bar/baz.txt $ tar cvfz baz.tgz bar.tgz bar.tgz |
您可以从内部访问文件,如下所示:
1 2 3 4 5 6 | >>> import tarfile >>> baz = tarfile.open('baz.tgz') >>> bar = tarfile.open(fileobj=baz.extractfile('bar.tgz')) >>> bar.extractfile('bar/baz.txt').read() 'This is bar/baz.txt. ' |
他们只是被提取到记忆中。
我怀疑这是不可能的,你必须手动编程。
.tar.gz文件首先是tar,然后连续使用基本上两个不同的应用程序进行gzip压缩。 要访问tar文件,您可能首先必须取消gzip。
此外,一旦您在解压缩后可以访问tar文件,它就不能很好地进行随机访问。 tar文件中没有列出内容的中央存储库。