gpt4 book ai didi

python - 我想提取一个 .tgz 文件并提取任何包含 .tgz 和 .tar 文件的子目录

转载 作者:太空狗 更新时间:2023-10-29 18:04:07 25 4
gpt4 key购买 nike

我正在使用下面的代码来提取 .tgz 文件。我需要提取的日志文件类型 (.tgz) 的子目录中包含其他 .tgz 文件和 .tar 文件他们。我也想提取它们。

最终,我试图在所有 .log 文件和 .txt 文件中搜索某些可能出现在 .tgz 中的字符串> 文件。

下面是我用来提取 .tgz 文件的代码。我一直在尝试找出如何提取子文件(.tgz.tar)。到目前为止,我一直没有成功。

import os, sys, tarfile

try:
tar = tarfile.open(sys.argv[1] + '.tgz', 'r:gz')
for item in tar:
tar.extract(item)
print 'Done.'
except:
name = os.path.basename(sys.argv[0])
print name[:name.rfind('.')], '<filename>'

最佳答案

这应该会给你想要的结果:

import os, sys, tarfile

def extract(tar_url, extract_path='.'):
print tar_url
tar = tarfile.open(tar_url, 'r')
for item in tar:
tar.extract(item, extract_path)
if item.name.find(".tgz") != -1 or item.name.find(".tar") != -1:
extract(item.name, "./" + item.name[:item.name.rfind('/')])
try:

extract(sys.argv[1] + '.tgz')
print 'Done.'
except:
name = os.path.basename(sys.argv[0])
print name[:name.rfind('.')], '<filename>'

正如@cularis 所说,这称为递归。

关于python - 我想提取一个 .tgz 文件并提取任何包含 .tgz 和 .tar 文件的子目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6058786/

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