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

如何使用xlrd在未知文件名时打开指定目录下的Excel文件?

实现方法

可以通过Python的glob或os模块匹配目标目录下的文件,找到符合扩展名/前缀规则的Excel文件后,再用xlrd打开。以下是具体实现:

方法一:用glob模块(推荐,支持通配符)

glob支持*(匹配任意字符)、?(匹配单个字符)等通配符,能快速定位文件:

1. 匹配目录下所有.xls文件

import glob
import xlrd

# 匹配所有.xls文件,取第一个匹配项
file_path = glob.glob(r'D:\New folder\*.xls')[0]
book = xlrd.open_workbook(file_path)
sheet = book.sheet_by_name("Sheet3")

2. 匹配前缀为"Exce"的.xls文件

import glob
import xlrd

# 匹配以Exce开头的.xls文件
file_path = glob.glob(r'D:\New folder\Exce*.xls')[0]
book = xlrd.open_workbook(file_path)
sheet = book.sheet_by_name("Sheet3")

方法二:用os模块遍历目录

通过遍历目录下的所有文件,手动判断文件名是否符合规则:

import os
import xlrd

dir_path = r'D:\New folder'
target_file = None

# 遍历目录找符合条件的文件
for filename in os.listdir(dir_path):
    # 可按需调整判断条件:比如仅判断扩展名,或仅判断前缀
    if filename.endswith('.xls') and filename.startswith('Exce'):
        target_file = os.path.join(dir_path, filename)
        break

if target_file:
    book = xlrd.open_workbook(target_file)
    sheet = book.sheet_by_name("Sheet3")
else:
    print("未找到符合条件的Excel文件")

注意事项

  • 如果目录下有多个符合条件的文件,上述代码默认取第一个匹配项。若需处理所有文件,可去掉break循环处理;若要避免误匹配,建议添加文件数量校验逻辑。
  • 建议添加异常处理,避免因文件不存在、损坏等情况导致脚本崩溃:
import glob
import xlrd

try:
    file_path = glob.glob(r'D:\New folder\Exce*.xls')[0]
    book = xlrd.open_workbook(file_path)
    sheet = book.sheet_by_name("Sheet3")
except IndexError:
    print("未找到符合条件的Excel文件")
except xlrd.XLRDError as e:
    print(f"Excel文件读取失败:{e}")
except Exception as e:
    print(f"未知错误:{e}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 13:30:47