gpt4 book ai didi

python - 使用 python 在主文件夹中的文件夹中解压缩 gz 文件

转载 作者:行者123 更新时间:2023-12-05 09:18:05 33 4
gpt4 key购买 nike

我有多个文件夹中的 .gz 压缩文件,这些文件都位于一个名为“usa”的主文件夹中。我能够使用下面的代码提取单个文件。

import gzip
import shutil
source=r"C:\usauc300.dbf.gz"
output=r"C:\usauc300.dbf"
with gzip.open(source,"rb") as f_in, open(output,"wb") as f_out:
shutil.copyfileobj(f_in, f_out)

我搜索了很多,但找不到与命令行选项 gzip -dr..... 等价的选项,这意味着“递归解压缩”并将遍历每个文件夹并提取在删除原始压缩文件的同时将内容复制到同一位置。有谁知道我如何使用 python 遍历文件夹中的文件夹,找到任何压缩文件并将它们解压缩到同一位置,同时用压缩文件替换解压缩文件?

最佳答案

我相信那是因为 gzip 从不对目录进行操作,它充当一种压缩算法,这与我们可以压缩目录的 zip 和 tar 不同。 python对gzip的实现是对文件进行操作。然而,如果我们查看 os.walk 调用,目录树的递归遍历是很容易的。

(我还没有测试过)

def gunzip(file_path,output_path):
with gzip.open(file_path,"rb") as f_in, open(output_path,"wb") as f_out:
shutil.copyfileobj(f_in, f_out)

def recurse_and_gunzip(root):
walker = os.walk(root)
for root,dirs,files in walker:
for f in files:
if fnmatch.fnmatch(f,"*.gz"):
gunzip(f,f.replace(".gz",""))

关于python - 使用 python 在主文件夹中的文件夹中解压缩 gz 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45596742/

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