导入多个Excel文件到DataFrame提示文件不存在但实际存在如何解决
错误原因
os.listdir()仅返回目标目录下的纯文件名,不会携带父目录路径。你直接将文件名传入pd.read_excel()时,程序会默认从当前脚本的工作目录(即os.getcwd()的返回值)查找文件,而你的文件实际存放在testimport子目录中,路径不匹配触发文件不存在报错。- 你提到的使用绝对路径仍报错,大概率是路径拼接时遗漏了
testimport子目录层级,或是硬编码路径时存在拼写、斜杠格式错误。
修复方案
推荐使用os.path.join()拼接路径,自动适配不同操作系统的路径分隔符,同时替换已废弃的DataFrame.append()方法,用pd.concat()做数据合并,效率更高:
import os import pandas as pd root_path = os.getcwd() # 拼接得到excel文件所在的子目录完整路径 excel_dir = os.path.join(root_path, "testimport") files = os.listdir(excel_dir) data_buffer = [] for file_name in files: # 拼接得到单个excel文件的完整绝对路径 full_path = os.path.join(excel_dir, file_name) current_data = pd.read_excel( full_path, sheet_name="Data", skiprows=range(0,4), usecols="B:I,P:V" ) data_buffer.append(current_data) # 合并所有数据 df = pd.concat(data_buffer, ignore_index=True)
排查建议
如果修复后仍报错,可在循环内打印full_path,将输出的路径手动复制到系统文件管理器中打开,确认路径有效性即可快速定位问题。
内容的提问来源于stack exchange,提问作者Ballongknutte
相关产品推荐
相关产品推荐

