递归遍历tar文件,提取指定扩展名的所有文件

Posted

技术标签:

【中文标题】递归遍历tar文件,提取指定扩展名的所有文件【英文标题】:Traverse tar file recursively and extract all files with specified extension 【发布时间】:2019-08-01 11:41:05 【问题描述】:

我有一个 tar.gz 文件,其中包含文件、文件夹和其他 tar.gz 文件的层次结构。

我不知道目录结构的深度,它会因文件而异

我想知道一种编写 Python 脚本的方法,该脚本将遍历所有压缩文件并提取具有指定文件扩展名的文件

【问题讨论】:

尝试docs 中的示例。并尝试this 回答。 【参考方案1】:

您可以使用tarfile 模块顶部打开tar.gz 文件,然后调用getmembers() 获取tar 文件成员。打开你想要的。

那些.tar.gz 成员应该被递归处理(很像你处理顶部文件)。唯一的区别是您可能需要将类文件对象传递给 TarFile.open 而不是文件名。

【讨论】:

并不是说我在 tar 中只有 tar 文件,它可以是任何压缩。我尝试过递归遍历,但我的 Python 脚本有时会失败 你需要处理你想要支持的各种压缩。至于递归失败 - 你可能有一个错误。

以上是关于递归遍历tar文件,提取指定扩展名的所有文件的主要内容,如果未能解决你的问题,请参考以下文章

递归遍历指定目录下所有指定的文件并删除

使用java递归方法遍历指定目录下所有子目录和子文件

如何递归遍历目录以删除具有某些扩展名的文件

CentOS下递归遍历文件夹下所有文件,查找指定字符

JAVA遍历一个文件夹中的所有文件---(递归)

Java中如何利用File类递归的遍历指定目录中的所有文件和文件夹