我正在尝试编写一个脚本来解压所有。Gz 文件来自一个目录中的文件夹。例如,我将有一个它调用的文件(testing.tar.gz)。然后,如果我手动做,我可以按“提取这里”,然后。Gz 文件将创建一个新文件,并调用 testing.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)