gpt4 book ai didi

python - 我想通过(Python)为解压缩(.tar.gz)文件创建一个脚本

转载 作者:IT老高 更新时间:2023-10-28 21:51:03 26 4
gpt4 key购买 nike

我正在尝试制作一个脚本,用于从一个目录中的文件夹中解压缩所有 .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)

最佳答案

为什么要“按”两次来提取 .tar.gz,而您可以轻松地执行一次呢?这是一次提取 .tar 和 .tar.gz 的简单代码:

import tarfile

if fname.endswith("tar.gz"):
tar = tarfile.open(fname, "r:gz")
tar.extractall()
tar.close()
elif fname.endswith("tar"):
tar = tarfile.open(fname, "r:")
tar.extractall()
tar.close()

关于python - 我想通过(Python)为解压缩(.tar.gz)文件创建一个脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30887979/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com