Python遍历文件夹读取Excel返回空白DataFrame问题求助
问题原因排查
- 核心问题是
glob的匹配规则错误:你传入的路径参数是C:/Users/abc/newfolder/,代码里拼接为p + '.xlsx'后得到的路径是C:/Users/abc/newfolder/.xlsx,仅能匹配到文件夹下名字为.xlsx的特殊文件,无法匹配所有后缀为xlsx的正常Excel文件。需要在.xlsx前增加通配符*,修改为p + '*.xlsx',*可匹配任意合法文件名前缀。 - 其次是方法兼容问题:pandas 1.4.0及以上版本已正式弃用
DataFrame.append方法,部分高版本环境下该方法执行不会抛出异常,但也无法正常完成数据拼接,推荐使用更稳定的pd.concat方法做合并。 - 可增加调试步骤验证:在获取
excel_files2后打印该列表,如果输出为空,即可确认是路径匹配问题,同时可顺便检查目标文件夹路径是否正确、是否有文件夹读取权限、文件夹下是否确实存在xlsx格式文件。
修复后代码
import pandas as pd import glob def fwd_pick(p): df_list = [] # 修正匹配规则,增加通配符* excel_files2 = glob.glob(p + '*.xlsx') # 调试时可取消下行注释,确认匹配到的文件列表 # print(excel_files2) for f in excel_files2: df2 = pd.read_excel(f) df_list.append(df2) # 用concat合并所有数据,ignore_index重置行索引避免重复 final2 = pd.concat(df_list, ignore_index=True) return final2 # 获取正向拣选位置数据 fwdpick = fwd_pick('C:/Users/abc/newfolder/')
内容的提问来源于stack exchange,提问作者hkay
相关产品推荐
相关产品推荐

