You need to enable JavaScript to run this app. Python如何合并多个不同目录下的Excel文件?
优惠活动
大模型
产品
解决方案
定价
更多

Python如何合并多个不同目录下的Excel文件?

跨目录多Excel文件合并解决方案

报错根因

你遇到的[Errno 2 No such file or directory]报错90%的概率是直接使用os.walk返回的文件名读取文件,没有拼接对应子目录的路径:os.walk返回的文件名仅为文件本身的名称,不带上级目录路径,脚本默认会在当前执行目录下查找对应文件,自然找不到子文件夹中存储的Excel。

完整实现代码

核心逻辑是遍历所有子目录时,拼接子目录路径和文件名得到完整的文件访问路径,再调用你原有单文件夹下的合并逻辑即可,示例代码如下:

import os
import pandas as pd

# 替换为你自己的Big Folder实际路径,优先使用绝对路径避免出错
root_dir = "/your/actual/path/to/Big Folder"
merge_result = []

# os.walk遍历所有层级子目录
for current_dir, _, file_list in os.walk(root_dir):
    for file_name in file_list:
        # 过滤只处理xls格式文件,需要兼容xlsx可补充or file_name.endswith(".xlsx")
        if file_name.endswith(".xls"):
            # 拼接得到完整文件路径,这是解决路径报错的核心步骤
            full_path = os.path.join(current_dir, file_name)
            # 这里可以替换为你原有单文件夹下的Excel读取、处理逻辑
            df = pd.read_excel(full_path)
            merge_result.append(df)

# 合并所有读取到的表格数据
final_df = pd.concat(merge_result, ignore_index=True)
# 输出合并后的文件,路径可自行修改
final_df.to_excel("./merged_all.xlsx", index=False)

注意事项

  • 运行前请确保安装了依赖库:pip install pandas openpyxl xlrd
  • 如果不同Excel的表头不一致,可自行调整pd.concat的参数,或读取后先做表头对齐、字段筛选再合并
  • 如果你原有合并逻辑有特殊处理(比如跳过表头行、仅读取指定Sheet、只取指定列等),仅需替换代码中Excel读取部分的逻辑即可,路径拼接的逻辑无需改动
  • 优先使用绝对路径定义root_dir,可以避免脚本执行目录变化导致的路径找不到问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 12:54:08