You need to enable JavaScript to run this app. pandas for循环批量读取Excel时文件识别报错,单文件读取正常
优惠活动
大模型
产品
解决方案
定价
更多

pandas for循环批量读取Excel时文件识别报错,单文件读取正常

循环批量读取目录下Excel报错的排查与修正

报错核心成因

  • os.listdir 会返回目标目录下的所有条目,包含子文件夹、系统生成的隐藏缓存文件(如macOS的.DS_Store、Windows的缩略图索引文件),并非仅匹配Excel格式文件。你此前单独测试可读的是手动筛选的合法Excel文件,但循环遍历遇到的子目录、无有效Excel格式的杂项文件,自然无法被pd.read_excel识别,触发文件类型校验错误。
  • 手动用字符串加号拼接路径的写法,在跨平台运行时容易出现路径分隔符不匹配的问题,导致程序无法定位到目标文件。

可直接运行的修正代码

import pandas as pd
import os

target_dir = "./data_excel"

# 筛选仅保留合法格式的Excel文件,过滤掉杂项、子文件夹
excel_file_list = [
    file for file in os.listdir(target_dir)
    if file.lower().endswith((".xlsx", ".xls"))
]

week_concatenated = pd.DataFrame()

for file in excel_file_list:
    # 使用系统自带的路径拼接方法,避免硬编码斜杠的兼容问题
    file_full_path = os.path.join(target_dir, file)
    df = pd.read_excel(file_full_path, sheet_name="DIGITAL_TASKS")
    week_concatenated = pd.concat([week_concatenated, df], ignore_index=True)

补充排查提示

  • 若修正后仍报错,可在循环中打印当前遍历的file_full_path,定位具体是哪个文件触发问题,排查该文件是否被其他软件锁定、是否存在读取权限不足的情况
  • 合并数据时添加ignore_index=True参数,可避免合并后出现重复索引导致的后续操作异常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.05 23:15:03