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

如何在Python中按指定顺序将符合命名规则的图片加载到列表中

按数字序号加载图片的实现方案

核心问题是glob.glob返回的文件名默认按字符串字典序排序,不会自动识别文件名中的数字做数值排序,你可以先对匹配到的文件列表做自定义排序后再加载图片,代码示例如下:

import glob
from PIL import Image

featured_list = []
# 匹配所有符合规则的文件
file_list = glob.glob("FEATURED*.png")
# 按文件名中的数字序号升序排序
file_list.sort(key=lambda file_name: int(file_name.split("_")[1].split(".")[0]))
# 遍历排序后的列表加载图片
for file_path in file_list:
    img = Image.open(file_path)
    featured_list.append(img)

排序逻辑说明:对每个文件名做两次拆分,先按下划线_拆分取后半部分,再按.拆分取数字部分,转为整数后作为排序依据,完全匹配你当前的命名规则,哪怕后续序号增长到两位、三位也能正确排序,不会出现FEATURED_10排在FEATURED_2前面的字符串排序问题。

如果要适配更复杂的路径场景(比如图片存在子文件夹中,路径包含其他分隔符),可以用正则表达式提取序号,鲁棒性更强:

import glob
import re
import os
from PIL import Image

featured_list = []
file_list = glob.glob("**/FEATURED*.png", recursive=True) # 支持递归查找子文件夹
file_list.sort(key=lambda path: int(re.search(r"FEATURED_(\d+)\.png", os.path.basename(path)).group(1)))
for path in file_list:
    featured_list.append(Image.open(path))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 10:36:01