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

如何用Python读取网络驱动器多级子文件夹中Excel的指定工作表?

问题分析与修复方案

原代码存在多个关键问题导致无输出,逐一拆解并给出修复方案:

核心问题

  • 未遍历层级文件夹:仅指定年度文件夹路径,没有递归遍历下属的月度、每日文件夹来定位Excel文件
  • 路径判断逻辑失效:filepath是文件夹路径而非文件,filepath.endswith(".xlsm")永远返回False,直接跳过后续处理
  • 语法与变量错误:sheet_name("ABC")是非法写法;files变量未定义;company列表未初始化
  • 网络路径格式错误:Windows网络路径需用原始字符串或转义双反斜杠,避免转义字符干扰路径识别

修复后的代码

import pandas as pd
import os

# 初始化存储结果的列表
company = []
# 网络路径用原始字符串避免转义问题
root_path = r'\\MUMPRR09\1-Sector Reports\2022'

# 递归遍历所有层级文件夹
for root, dirs, files in os.walk(root_path):
    for file in files:
        # 仅处理xlsm格式的Excel文件
        if file.endswith(".xlsm"):
            file_full_path = os.path.join(root, file)
            try:
                # 读取指定工作表"ABC"
                df = pd.read_excel(file_full_path, sheet_name='ABC')
                # 获取第一行第一列的数据并添加到列表
                a = df.iloc[0, 0]
                company.append(a)
            except Exception as e:
                # 捕获异常,避免单个文件出错中断整个程序
                print(f"处理文件 {file_full_path} 时出错: {str(e)}")

# 输出结果
print(company)

代码说明

  • 用os.walk()递归遍历年度→月度→每日的所有层级文件夹,自动定位所有Excel文件
  • 用os.path.join()拼接完整文件路径,避免路径格式错误
  • 增加try-except捕获异常(如文件损坏、工作表不存在等),保证程序持续运行
  • 初始化company列表,确保数据能正常存储
  • 网络路径采用原始字符串r'路径',解决转义字符识别问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 06:54:58