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

如何用Python列出文件夹中含.xlsx/.xlsb/.xlsm格式的Excel文件?

解决方法:列出指定文件夹中的.xlsx、.xlsb、.xlsm文件

你的原代码仅检查.xls后缀,无法匹配.xlsx、.xlsb、.xlsm这类更长的后缀,所以达不到预期效果。以下是两种可靠的实现方式:

方法1:基于os模块修改

利用str.endswith()支持元组参数的特性,同时匹配多个目标后缀,还能兼容大小写命名的文件:

import os

# 替换为你的目标文件夹路径
target_dir = "/path/to/your/folder"

# 定义需要匹配的Excel后缀(包含大小写兼容)
excel_extensions = (".xlsx", ".xlsb", ".xlsm", ".XLSX", ".XLSB", ".XLSM")

# 遍历文件夹内的所有文件
for filename in os.listdir(target_dir):
    # 检查文件后缀是否在目标集合中
    if filename.endswith(excel_extensions):
        print(filename)

如果想更简洁地处理大小写,可以用filename.lower().endswith((".xlsx", ".xlsb", ".xlsm"))替代上面的判断条件。

方法2:使用pathlib(Python3.4+推荐)

pathlib是Python标准库中更现代的文件路径处理模块,代码可读性更高:

from pathlib import Path

# 替换为你的目标文件夹路径
target_dir = Path("/path/to/your/folder")

# 遍历所有符合后缀的文件
for excel_file in target_dir.iterdir():
    # 检查文件后缀(转为小写避免大小写问题)
    if excel_file.suffix.lower() in {".xlsx", ".xlsb", ".xlsm"}:
        print(excel_file.name)

也可以用glob方法直接匹配:

from pathlib import Path

target_dir = Path("/path/to/your/folder")
# 通配符匹配所有目标后缀(大小写兼容)
for excel_file in target_dir.glob("*.[xX][lL][sS][xXbBmM]"):
    print(excel_file.name)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 05:43:20