You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python自动遍历多级文件夹并批量解压所有zip文件

递归遍历子目录批量解压ZIP的Python实现

你原来的代码仅使用os.listdir()遍历根目录下的第一层文件,无法识别子目录内的文件,替换为os.walk()即可实现全层级目录遍历,修改后的完整代码如下:

import os
import zipfile

# 要遍历的根目录,可根据实际情况修改
dir_name = 'E:/binance-public-data/python/data/spot/monthly/trades'
extension = ".zip"

# 递归遍历所有层级的目录和文件
for root, dirs, files in os.walk(dir_name):
    for file in files:
        # 筛选zip格式文件
        if file.endswith(extension):
            # 拼接得到zip文件的绝对路径,解决原代码的路径匹配错误
            zip_file_path = os.path.join(root, file)
            zip_ref = zipfile.ZipFile(zip_file_path)
            # 此处默认将文件解压到zip所在的子目录,如需统一解压到根目录,将root替换为dir_name即可
            zip_ref.extractall(root)
            zip_ref.close()
            # 完成解压后删除原zip文件,不需要可删除此行
            os.remove(zip_file_path)

主要调整点说明:

  • 用os.walk()替代os.listdir(),自动遍历根目录下所有层级的子文件夹,无需手动指定每个币种子目录路径
  • 修复了原代码的路径错误:原代码直接调用os.path.abspath(item)会以脚本运行目录为基准拼接路径,大概率出现找不到文件的报错,改为用os.path.join(root, file)拼接当前遍历目录和文件名,得到准确的zip文件绝对路径
  • 解压路径支持灵活调整:默认解压到zip文件所在的子目录,符合多币种目录各自存放对应交易数据的使用习惯,如需统一解压到根目录仅需修改extractall的入参即可

内容的提问来源于stack exchange,提问作者Vobliss

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 14:06:01