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

如何从glob匹配的weights_epoch_*.tf.index文件名中提取最大数字

从glob匹配的权重文件中提取最大epoch值

要从model_dir.glob('weights_epoch_*.tf.index')返回的文件路径中找出最大的epoch数字,可通过以下两种简洁方法实现:

方法一:字符串拆分(适合固定格式文件名)

利用pathlib.Path的属性拆分文件名,提取数字后转成整数再取最大值:

from pathlib import Path

# 假设model_dir是已初始化的Path对象
max_epoch = max(
    int(path.stem.split('_')[2])
    for path in model_dir.glob('weights_epoch_*.tf.index')
)
print(max_epoch)  # 输出:49

说明:

  • path.stem 获取文件的主干名(不含最外层后缀),比如weights_epoch_49.tf.index的stem是weights_epoch_49.tf
  • split('_')[2] 将主干名按下划线拆分,取第三部分得到数字字符串"49"
  • 转成整数后,直接用max()从生成器中提取最大值

方法二:正则表达式(适配格式小变动)

如果文件名格式可能有细微调整,用正则匹配数字更鲁棒:

import re
from pathlib import Path

# 匹配weights_epoch_后的连续数字
epoch_pattern = re.compile(r'weights_epoch_(\d+)\.tf\.index')

max_epoch = max(
    int(epoch_pattern.search(path.name).group(1))
    for path in model_dir.glob('weights_epoch_*.tf.index')
)
print(max_epoch)  # 输出:49

说明:

  • 正则表达式中的(\d+)会精准捕获文件名里的连续数字
  • path.name获取完整文件名,search()找到匹配项后,group(1)提取捕获的数字字符串,转成整数后取最大值

内容的提问来源于stack exchange,提问作者Antti Rytsölä

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 12:27:44