You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python读取指定文件夹Excel文件时提示文件不存在的求助

问题分析与解决

核心问题

  1. 文件名丢失后缀:处理文件名时用file[:-5]去掉了.xlsx后缀,导致打开路径变成G:\My Drive\Chip data\D060003,但实际文件是D060003.xlsx,系统找不到无后缀的目标文件。
  2. 局部变量无法访问:excels列表定义在Excel_Data函数内部,函数外代码无法直接调用该变量,运行时会触发NameError。
  3. 未处理子目录路径:os.walk会遍历目标文件夹下的所有子目录,但拼接路径时仅使用根目录,若文件存于子文件夹,拼接后的路径会指向错误位置。

修正后的代码

import os
import xlwings as xw

def Excel_Data():
    excels = []
    # 遍历目录,保存完整文件路径
    for root, dirs, files in os.walk(r'G:\My Drive\Chip data'):
        for file in files:
            if file.endswith('.xlsx') and not file.startswith('~'):
                # 拼接完整路径,保留文件后缀
                full_path = os.path.join(root, file)
                excels.append(full_path)
    return excels

# 获取所有Excel文件的完整路径
excel_files = Excel_Data()

# 逐个打开文件,增加异常捕获便于排查
for file_path in excel_files:
    try:
        xw.Book(file_path)
        print(f"成功打开文件: {file_path}")
    except Exception as e:
        print(f"打开文件失败 {file_path}: {str(e)}")

关键修改点

  • 保存完整文件路径:用os.path.join(root, file)拼接当前遍历目录与文件名,确保子目录内的文件也能被正确定位。
  • 保留文件后缀:不再截断.xlsx,保证路径指向真实存在的文件。
  • 函数返回结果:让外部代码能获取到遍历生成的文件列表。
  • 增加异常捕获:方便定位单个文件的打开故障。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 14:05:00