Sto usando il codice seguente per estrarre .tgz
file. Il tipo di file di log (.tgz
) che ho bisogno di estrarre avere sub-directory che hanno altri .tgz
file e .tar
file al loro interno. Voglio estrarre anche quelli.Voglio estrarre un file .tgz ed estrarre tutte le sottodirectory che hanno i file che sono .tgz e .tar
In definitiva, sto cercando di cercare determinate stringhe in tutti i file .log
e nei file .txt
che possono apparire in un file .tgz
.
Di seguito è il codice che sto usando per estrarre il file .tgz
. Ho cercato di capire come estrarre i file secondari (.tgz
e .tar
). Finora, non ho avuto successo.
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>'
Questo sembra essere un ottimo caso d'uso per una ricorsione. Fornisci il primo tarfile alla funzione e se incontra un altro file tar, la funzione è chiamata stessa con il nuovo file tar. Se si trova un file di registro, è possibile richiamare un'altra funzione che gestisce i file di registro. – Jacob