合并多个Excel文件时触发FileNotFoundError错误,寻求解决方法
解决合并Excel文件时的FileNotFoundError错误
错误原因
os.listdir("D:\ok\data")仅返回文件夹内的文件名(如link110.xlsx),但你的脚本运行的当前工作目录并非D:\ok\data,直接用文件名读取会导致系统找不到对应文件。
修正后的代码
import os import pandas as pd # 目标文件夹路径,加r避免转义字符问题 folder_path = r"D:\ok\data" df = pd.DataFrame() for file in os.listdir(folder_path): # 拼接完整文件路径,适配不同系统的路径分隔符 full_file_path = os.path.join(folder_path, file) # 只处理Excel格式文件,避免读取非Excel文件报错 if file.lower().endswith(('.xlsx', '.xls', '.xlsm')): # 用pd.concat替代已弃用的df.append df = pd.concat([df, pd.read_excel(full_file_path)], ignore_index=True) # 循环结束后一次性保存合并结果,提升效率 df.to_excel('Combined_Excels.xlsx', index=False)
关键优化点
- 使用
os.path.join()拼接完整文件路径,确保脚本能准确定位到目标文件。 - 增加文件格式过滤,避免读取文件夹内的非Excel文件导致额外错误。
- 替换已弃用的
df.append为pd.concat,符合Pandas最新规范。 - 将
to_excel()移到循环外部,仅执行一次保存操作,减少IO开销。
内容的提问来源于stack exchange,提问作者Amen Aziz
相关产品推荐
相关产品推荐

