【发布时间】:2011-05-19 12:45:05
【问题描述】:
我正在使用下面的代码来提取.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>'
【问题讨论】:
-
这似乎是一个很好的递归用例。您向函数提供第一个 tar 文件,如果它遇到另一个 tar 文件,则该函数将使用新的 tar 文件调用自身。如果你找到一个日志文件,你可以调用另一个处理日志文件的函数。
标签: python gzip tar compression