You need to enable JavaScript to run this app. 如何用Python遍历400个子文件夹批量打开指定Excel并存为df1、df2等
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python遍历400个子文件夹批量打开指定Excel并存为df1、df2等

批量遍历子文件夹读取固定Excel的实现方案

前置依赖

首先安装需要的依赖库:
pip install pandas openpyxl

推荐方案:用列表统一存储表格对象(优先选这个)

这种方式比手动命名df1、df2灵活太多,后续批量处理、合并、统计都不用额外调整,非常适合处理400个同类文件的场景。
步骤如下:

  • 导入依赖库
import pandas as pd
from pathlib import Path
  • 定义根目录、目标Excel的固定名称,按需替换成你自己的路径和文件名
# 总文件夹的路径,可写绝对路径比如 Path("D:/项目文档/总文件夹")
root_dir = Path("你的总文件夹路径")
# 每个子文件夹里固定存在的Excel文件名
target_excel_name = "固定的目标Excel名称.xlsx"
  • 初始化列表存储所有读取到的df,循环遍历读取
# 存储所有表格的列表,索引0对应原来的df1,索引1对应df2,以此类推
dfs_list = []

# 若你的400个子文件夹都是根目录下的一级目录,用下面的精准遍历逻辑,避免误搜其他位置的同名文件
for sub_dir in root_dir.iterdir():
    # 跳过根目录下的文件,只处理子文件夹
    if not sub_dir.is_dir():
        continue
    # 拼接当前子文件夹下的目标Excel路径
    current_excel_path = sub_dir / target_excel_name
    # 只处理存在的目标文件
    if current_excel_path.exists():
        df = pd.read_excel(current_excel_path)
        dfs_list.append(df)
    else:
        print(f"提示:子文件夹 {sub_dir.name} 中未找到目标Excel,已跳过")

运行完后,dfs_list[0]等价于手动命名的df1,dfs_list[1]等价于df2,后续要合并所有表格直接执行pd.concat(dfs_list)即可,要批量处理所有df直接遍历dfs_list就行。

次选方案:强制生成df1、df2...格式的独立命名变量(不推荐)

如果有特殊需求必须要生成独立的df1、df2命名的变量,可以用动态赋值的方式实现,但这种写法属于Python的反模式,无法批量遍历处理变量,后续扩展灵活性很差,仅在特殊需求下使用。
代码逻辑:

# 先清理历史残留的df1、df2...变量,避免混淆
for var_name in list(globals().keys()):
    if var_name.startswith("df") and var_name[2:].isdigit():
        del globals()[var_name]

count = 1
for sub_dir in root_dir.iterdir():
    if not sub_dir.is_dir():
        continue
    current_excel_path = sub_dir / target_excel_name
    if current_excel_path.exists():
        df = pd.read_excel(current_excel_path)
        # 动态把当前df赋值给全局变量df{count}
        globals()[f"df{count}"] = df
        count += 1

运行完成后,会自动在全局作用域生成df1、df2、df3...直到dfN,N为实际找到的目标Excel数量。

注意事项

  • 如果你的目标Excel是旧版.xls格式,需要额外安装xlrd库,读取时指定引擎:pd.read_excel(current_excel_path, engine="xlrd")
  • 若目标Excel有多个工作表,需要读取指定工作表时,可在pd.read_excel()里加sheet_name="工作表名称"参数
  • 遍历前可以先手动核对几个子文件夹的目标Excel路径,避免路径写错导致漏读

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.04 09:24:07