gpt4 book ai didi

python - 如何在不提取的情况下遍历包含 zip 文件的 tar.gz 文件

转载 作者:太空宇宙 更新时间:2023-11-03 13:53:02 27 4
gpt4 key购买 nike

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

感谢您的帮助,

最佳答案

如果不解压缩文件,您将无法访问它。但是,如果您不想,则不需要将其解压缩到磁盘。您可以使用 tarfile.TarFile.extractfile 方法获取类似文件的对象,然后将其作为 fileobj 传递给 tarfile.open争论。例如,给定这些嵌套的 tarfiles:

$ 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'

而且它们只会提取到内存中。

关于python - 如何在不提取的情况下遍历包含 zip 文件的 tar.gz 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3293809/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com