Я пытаюсь сделать script для распаковки всех файлов .tar.gz из папок в одном каталоге. Например, у меня будет файл, который он вызывает (testing.tar.gz). Затем, если я сделаю это вручную, я могу нажать "извлечь здесь", тогда файл .tar.gz создаст новый файл и вызовет test.tar. Наконец, если я повторю процесс нажатия "extract here", файл .tar расшифровывает все файлы .pdf.
Интересно, как я могу это сделать, и у меня есть мой код здесь, и кажется, что это не работает.
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)