.tgz
dosyalarını ayıklamak için aşağıdaki kodu kullanıyorum. Ayıklamak için gereken günlük dosyalarının (.tgz
), diğer .tgz
dosyaları ve bunların içinde .tar
dosyaları bulunan alt dizinleri vardır. Bunları da çıkarmak istiyorum.Bir .tgz dosyası ayıklamak ve .tgz ve .tar olan tüm alt dizinleri ayıklamak istiyorum.
Sonuç olarak, .tgz
dosyasında görüntülenen tüm .log
dosyaları ve .txt
dosyalarında belirli dizeleri aramaya çalışıyorum.
.tgz
dosyasını ayıklamak için kullanıyorum kod aşağıdadır. Alt dosyaları (.tgz
ve .tar
) ayıklamak için çalışıyorum. Şimdiye kadar, başarısız oldum.
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>'
Bu, bir özyineleme için harika bir Kullanım Durumu gibi görünüyor. Işlev için ilk tarfile sağlar ve başka bir tar dosya ile karşılaşırsa, işlev kendisini yeni tar dosyasıyla çağırır. Bir günlük dosyası bulursanız, günlük dosyalarını işleyen başka bir işlevi çalıştırabilirsiniz. – Jacob