我正在尝试编写一个脚本,用于从一个目录中的文件夹中解压缩所有的.tar.gz文件。例如,我将有一个名为( testing.tar.gz)的文件。然后如果我手动操作,我可以按“在此处提取”按钮,然后.tar.gz文件将创建一个新文件,并且命名为testing.tar。最后,如果我重复按“在此处提取”按钮,.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)