python - 遍历图像列表并将它们分配为 python 中的变量

标签 python image iteration python-imaging-library pillow

我正在尝试编写一个函数来迭代 python 中的图像列表,以便 Pillow 图像处理可以访问它们。

ImTestA = Image.open("A.png")
ImTestB = Image.open("B.png")
ImTestC = Image.open("C.png")
ImTest1 = Image.open("1.png")
ImTest2 = Image.open("2.png")
ImTest3 = Image.open("3.png")
ImTest4 = Image.open("4.png")
ImTest5 = Image.open("5.png")
ImTest6 = Image.open("6.png")

我目前有上述内容,但正在尝试将其重构为我可以分配不同长度的内容(使用带有 A-K 或 J-Z 的列表)。

from PIL import Image

AtoC = ["A.png", "B.png", "C.png"]

def OpenAns(quest):
    AtoCImages = []
    for image in quest:
        AtoCImages.append(Image.open(image))
        return AtoCImages

OpenAns(AtoC)

ImTestA = AtoCImages[0]
ImTestB = AtoCImages[1]
ImTestC = AtoCImages[2]

修复了之前的错误,并返回到与之前相同的问题。我只是想清理我的代码,让它干干净净。感谢您的帮助。

Traceback (most recent call last):
  File "C:\ImageTest.py", line 13, in <module>
    ImTestA = AtoCImages[0]
NameError: name 'AtoCImages' is not defined

也许我只会有单独的文件,每个文件都有一个列表。如果我不能缩短它。

最佳答案

改变:

for image in AtoC:
    AtoCIm = []
    AtoCIm.append(Image.open(image))

AtoCIm = []
for image in AtoC:
    AtoCIm.append(Image.open(image))

会做的。

您每次迭代都在创建一个新列表,而不是创建一次列表并向其添加新项目。因此,您的列表始终只有一项。尝试获取第二项 AtoCIm[1] 将引发异常。

关于python - 遍历图像列表并将它们分配为 python 中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30625666/

相关文章:

ios - asset imageURL 作为字符串传递给另一个类

wpf - 如何在代码隐藏文件中设置 ImageSource

python - 如何修复Python中的 "List Index out of range"?

ruby - 如果数组在每次迭代期间更新,array.each 能否正常工作?

python - 如何在 c 中读取传感器,然后在 python 中使用该输入

python - 如何为 APScheduler 3.0 传递 UTC 时区?

node.js - Nodejs下载多个文件

python - 遍历文件夹,提取不带扩展名的文件名并在 Python 中分配为 API 变量名

python - OpenCV 去除背景

python - 如何让直方图垂直输出数据?