pandas批量读取指定路径xls文件出现FileNotFoundError如何解决
问题原因
os.listdir() 仅返回目标路径下的文件名/文件夹名,不包含完整路径前缀。你自定义路径后,循环读取时直接传入文件名,pandas会默认在当前工作目录下查找文件,自然找不到你指定路径里的xls文件。
修复方案
你只需要在读取文件时,把自定义路径和文件名拼接成完整路径即可,推荐用os.path.join()做路径拼接,自动适配不同操作系统的路径分隔符。
修正后的完整代码如下:
import os import pandas as pd # 自定义文件存储路径 path = "/path/to/file" files = os.listdir(path) files_xls = [f for f in files if f[-3:] == 'xls'] dfs = pd.DataFrame() for i in files_xls: # 拼接完整路径 full_file_path = os.path.join(path, i) data = pd.read_excel(full_file_path, 'Sheet 1', converters={'CODIGO':str}) dfs = pd.concat([dfs, data], ignore_index=True)
补充优化建议:你原来用的
DataFrame.append()方法在pandas 2.0+版本已经被废弃,替换为pd.concat()兼容性更好,加上ignore_index=True可以避免合并后出现重复索引的问题。
内容的提问来源于stack exchange,提问作者Javier
相关产品推荐
相关产品推荐

