如何在不解压的情况下遍历包含 zip 文件的 tar.gz 文件

2023-12-28

我有一个很大的 tar.gz 文件需要使用 python 脚本进行分析。 tar.gz 文件包含许多 zip 文件,其中可能嵌入其他 .gz 文件。在提取文件之前,我想浏览一下压缩文件中的目录结构,以查看是否存在某些文件或目录。通过查看 tarfile 和 zipfile 模块,我没有看到任何现有函数可以让我在 tar.gz 文件中获取 zip 文件的内容表。

感谢你的帮助,


如果不解压该文件,您将无法获取它。但是,您不需要提取它to disk如果你不想的话。您可以使用tarfile.TarFile.extractfile方法来获取类似文件的对象,然后将其传递给tarfile.open as the fileobj争论。例如,给定这些嵌套 tar 文件:

$ 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

您可以像这样从内部访问文件:

>>> 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.\n'

它们只会被提取到内存中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在不解压的情况下遍历包含 zip 文件的 tar.gz 文件 的相关文章

随机推荐