我可以从“ for”循环中调用对象吗?

时间:2020-02-21 17:57:04

标签: python for-loop glob

例如:

path = 'sresize/*.*'

for a, source in enumerate(glob.glob(path)):
    print(a, source)
    img = cv2.imread(source)

我可以将img循环之外的对象称为for吗?如果不是,是否有任何方法可以从目录生成图像,然后将其作为对象调用? ImageDataGenerator除外。 感谢您提供有价值的信息:)

3 个答案:

答案 0 :(得分:1)

现在,如果您使用img,则会得到读取的最后一个img

您要将对象存储在列表或字典中,以便以后调用它们。

path = 'sresize/*.*'

imgs = {}
for a, source in enumerate(glob.glob(path)):
    print(a, source)
    imgs[a] = cv2.imread(source)

然后用img[0]叫第一个,下一个叫img[1],依此类推。

答案 1 :(得分:0)

path = 'sresize/*.*'
images = []
for a, source in enumerate(glob.glob(path)):
    print(a, source)
    images.append(cv2.imread(source))

如果在for循环之前声明变量,则该垃圾回收器不会以任何语言在100%的循环中将垃圾回收器收集到该变量。

答案 2 :(得分:-1)

是的,因为一旦运行了for循环,python唯一从内存中删除的变量就是那些定义为循环一部分的变量。因此,在您的情况下,a和source的最后一个值将不可用