我正在尝试制作一个脚本,用于从一个目录中的文件夹中解压缩所有.tar.gz文件。例如,我将拥有一个它调用的文件(testing.tar.gz)。然后如果我手动执行,我可以按“extract here”,然后.tar.gz文件将创建一个新文件,并调用testing.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)