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

Python中使用glob模块遍历带数字后缀的TXT文件失败,如何解决?

解决glob匹配imageN.txt文件的问题

嘿,我明白你遇到的麻烦了——你想用glob批量匹配image1.txt、image2.txt这类按数字编号的文本文件,但当前的代码没法正常工作,核心问题在于glob不支持正则表达式里的\d+语法,它有自己一套通配符规则,不能直接混用正则。

下面给你几个实用的解决方案:

方案1:glob通配符 + 正则过滤(最直接)

先用glob匹配所有image开头的txt文件,再用正则过滤出仅数字后缀的文件,兼顾灵活性和准确性:

import glob
import re

# 注意用原始字符串r""避免转义问题
for each_file in glob.glob(r"C:\你的文件夹路径\image*.txt"):
    # 用正则校验文件名是否符合image+数字+.txt的格式
    if re.match(r".*image\d+\.txt$", each_file):
        print(each_file)
        # 在这里执行你的文件操作,比如读取、修改等

方案2:用Pathlib(Python3.4+ 更优雅)

Pathlib是Python标准库的现代文件路径工具,写法更简洁直观:

from pathlib import Path
import re

# 定义目标文件夹路径
target_folder = Path(r"C:\你的文件夹路径")

# 遍历所有image开头的txt文件,再过滤符合规则的
for txt_file in target_folder.glob("image*.txt"):
    # 只校验文件名部分,更精准
    if re.match(r"image\d+\.txt$", txt_file.name):
        print(txt_file)
        # 执行你的操作

为什么你的原始代码失效?

你写的glob.glob("C:\\...\\image\\d+\\.txt")有两个问题:

  1. glob不支持\d+这种正则语法,它的通配符只有:
    • *:匹配任意长度的任意字符
    • ?:匹配单个任意字符
    • [0-9]:匹配单个数字(比如image[0-9].txt只能匹配image1-image9.txt)
  2. 路径里的image\d+写法错误,应该是image直接跟通配符,而不是用\分隔。

如果你的文件名数字位数固定(比如都是1位或2位),也可以用纯glob匹配,比如image[0-9][0-9].txt匹配image00-image99.txt,但如果数字位数不固定,还是结合正则过滤更靠谱。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 17:25:25