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

如何使用Python读取指定文件夹下的图片文件名并逐张加载?

文件夹图片遍历读取方案

你原有代码存在3个问题,修正后即可实现和文本逐行读取一致的遍历效果:

  • 缩进不规范,Python对代码缩进有严格语法要求,循环体前不能有多余前置空格
  • 后缀匹配规则错误,原有代码写的*.img无法匹配.png格式的图片
  • 缺少路径合法性校验,可能把同名文件夹误识别为图片文件导致报错

方案1:基于你原有glob写法修正(最贴近你当前的代码习惯)

这个方案的逻辑和open().read().splitlines()完全对齐:先一次性拿到所有目标图片的路径列表(等价于splitlines返回的行内容列表),再逐张加载/处理即可。

from PIL import Image
import glob
import os

# 替换为你的实际文件夹路径,比如"./my_images"代表当前脚本目录下的my_images文件夹
target_folder = "yourpath"
# 第一步:拿到所有png格式图片的完整路径,这一步等价于splitlines()拿到所有行的结果
image_paths = glob.glob(os.path.join(target_folder, "*.png"))

# 第二步:逐张加载图片,存入列表
image_objects = []
for path in image_paths:
    # 过滤掉命中后缀规则的文件夹,避免报错
    if os.path.isfile(path):
        img = Image.open(path)
        # 如果需要提前把图片数据加载到内存,可以放开下面这行
        # img.load()
        image_objects.append(img)

如果需要同时匹配jpg、jpeg、bmp等其他常见图片格式,替换路径匹配部分的代码即可:

# 定义需要匹配的图片后缀
support_exts = ("*.png", "*.jpg", "*.jpeg", "*.bmp")
image_paths = []
for ext in support_exts:
    image_paths.extend(glob.glob(os.path.join(target_folder, ext)))

如果需要递归读取所有子文件夹里的图片,把glob规则改成带**的通配符,开启递归参数即可:

image_paths = glob.glob(os.path.join(target_folder, "**/*.png"), recursive=True)

方案2:基于os.listdir实现(无额外依赖,逻辑更直观)

如果不想用glob库,用Python内置的os模块遍历也可以实现同样效果:

from PIL import Image
import os

target_folder = "yourpath"
image_paths = []
image_objects = []

for filename in os.listdir(target_folder):
    # 不区分大小写匹配png后缀,比如.PNG结尾的文件也能识别
    if filename.lower().endswith(".png"):
        full_path = os.path.join(target_folder, filename)
        if os.path.isfile(full_path):
            image_paths.append(full_path)
            # 需要直接加载图片对象就放开下面两行
            # img = Image.open(full_path)
            # image_objects.append(img)

逻辑对应说明

和你熟悉的文本读取逻辑完全一一对应:

文本读取流程图片读取流程
open("data.txt", "r")指定目标文件夹路径
read().splitlines()匹配筛选得到所有图片路径列表
遍历列表逐行处理文本内容遍历列表逐张加载/处理图片

内容的提问来源于stack exchange,提问作者M A Nezam Sagor

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 01:48:14