私は.tgz
ファイルを抽出するために以下のコードを使用しています。私が抽出する必要のあるログファイルのタイプ(.tgz
)には、他の.tgz
ファイルと.tar
ファイルがあるサブディレクトリがあります。私もそれらを抽出したい。.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ファイルで自身を呼び出します。ログファイルを見つけたら、ログファイルを扱う別の関数を呼び出すことができます。 – Jacob