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

使用PIL加载文件夹图片报错:'generator'对象无'seek'属性

解决PIL打开图片时的AttributeError问题

嘿,这个问题其实很好理解,我来给你拆解一下:

错误原因

你用glob.iglob()得到的marked是一个生成器对象,而PIL的Image.open()方法需要的是具体的文件路径字符串(或者可读取的文件对象)。生成器本身没有seek()方法(这个方法是文件对象用来移动读取指针的),所以就抛出了AttributeError: 'generator' object has no attribute 'seek'这个错误。

简单说就是:你给Image.open()传了一个它不认识的“东西”,它需要的是单个图片的路径,而不是一堆路径的生成器。

修复方案

方案1:遍历生成器逐个打开图片

glob.iglob()会逐个生成匹配的文件路径,你可以用循环遍历每个路径,再打开图片:

import glob
from PIL import Image

# 注意路径末尾要加/*,这样才能匹配Marked文件夹里的所有文件
for img_path in glob.iglob("D:/Users/username/Desktop/cells/Marked/*"):
    img = Image.open(img_path)
    img.show()

方案2:用glob.glob()获取路径列表再遍历

如果你想一次性拿到所有图片路径,也可以用glob.glob(),它会直接返回一个包含所有匹配路径的列表,再遍历这个列表即可:

import glob
from PIL import Image

# 获取Marked文件夹下所有文件的路径列表
img_paths = glob.glob("D:/Users/username/Desktop/cells/Marked/*")
for img_path in img_paths:
    img = Image.open(img_path)
    img.show()

额外提醒

一定要记得在路径末尾加上/*,不然glob可能只会匹配到Marked这个文件夹本身,而不是里面的图片文件,那样打开的时候还是会报错哦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:11:15