Sto provando a creare uno script per decomprimere tutti i file .tar.gz dalle cartelle in una directory. Ad esempio, avrò un file che chiama (testing.tar.gz). Quindi se faccio manualmente, posso premere per "estrarre qui", quindi il file .tar.gz creerà un nuovo file e chiama testing.tar. Infine, se ripeto il processo di premere "estrai qui", il file .tar mi produce tutti i file .pdf.Voglio creare uno script per decomprimere (.tar.gz) file via (Python)
Mi chiedo come posso farlo, e ho il mio codice qui e sembra non funzionare in realtà tho.
import os
import tarfile
import zipfile
def extract_file(path, to_directory='.'):
if path.endswith('.zip'):
opener, mode = zipfile.ZipFile, 'r'
elif path.endswith('.tar.gz') or path.endswith('.tgz'):
opener, mode = tarfile.open, 'r:gz'
elif path.endswith('.tar.bz2') or path.endswith('.tbz'):
opener, mode = tarfile.open, 'r:bz2'
else:
raise ValueError, "Could not extract `%s` as no appropriate extractor is found" % path
cwd = os.getcwd()
os.chdir(to_directory)
try:
file = opener(path, mode)
try: file.extractall()
finally: file.close()
finally:
os.chdir(cwd)
A meno che non ci sia un punto nell'uso di Python, sembra un lavoro che si adatta meglio allo script di shell. – mfaerevaag
extractall prende la directory di destinazione come parametro, non c'è bisogno di chdir avanti e indietro –