我正在尝试编写一个迭代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
也许我只会有单独的文件,每个文件都有一个列表。如果我不能缩短它。
答案 0 :(得分:6)
变化:
for image in AtoC:
AtoCIm = []
AtoCIm.append(Image.open(image))
到
AtoCIm = []
for image in AtoC:
AtoCIm.append(Image.open(image))
会这样做。
您每次迭代都会创建一个新列表,而不是创建一次列表并向其添加新项目。因此,您的列表始终只有1个项目。试图获得第二项AtoCIm[1]
将引发异常。