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

如何正确遍历IMG_####_0格式图片?解决FileNotFoundError问题

解决文件名遍历不匹配的问题

嘿,这个问题我之前也碰到过!核心问题是你的代码没处理好文件名里的四位前导零,而且遍历的数字范围也不对,才导致找不到IMG_0_0.png这种不存在的文件。

错误原因拆解

你的原代码range(150)会生成从0到149的数字,直接用format(i)转成字符串的话,数字1会变成"1",0变成"0",生成的文件名就是IMG_0_0.png、IMG_1_0.png这类,和你实际的IMG_0001_0.png、IMG_0022_0.png格式完全不匹配,自然触发FileNotFoundError。

正确实现方式

你需要做两个调整:

  1. 调整数字范围:因为你的文件从IMG_0001_0.png开始,要遍历前150张的话,应该用range(1, 151)(左闭右开,所以结束值是151)。
  2. 补前导零:格式化数字时,用04d格式符强制把数字转成四位长度,不足的地方用0补齐。

简洁版代码(用format)

fnames = ['IMG_{:04d}_0.png'.format(i) for i in range(1, 151)]

更现代的f-string写法

fnames = [f'IMG_{i:04d}_0.png' for i in range(1, 151)]

进阶:避免不存在的文件报错

如果担心某些编号的文件缺失,可以加入存在性检查,遍历的时候只保留确实存在的文件路径:

import os

# 替换成你的图片目录路径
image_folder = '/Users/me/images'
valid_fnames = []

for i in range(1, 151):
    filename = f'IMG_{i:04d}_0.png'
    full_path = os.path.join(image_folder, filename)
    if os.path.exists(full_path):
        valid_fnames.append(full_path)
    else:
        print(f"提示:文件 {full_path} 不存在,已跳过")

这样生成的valid_fnames里就全是能找到的文件路径啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 08:23:24