在我的代码中,我循环浏览一个csv文件,对于每一行,都会根据其中一个价值观。比如所以:
if 'V,S,M' in s.com:
compic = Image.open('Com-VSM.png')
elif "V,S" in s.com:
compic = Image.open('Com-VS.png')
elif "V,M" in s.com:
compic = Image.open('Com-VM.png')
elif "S,M" in s.com:
compic = Image.open('Com-SM.png')
elif "V" in s.com:
compic = Image.open('Com-V.png')
elif "S" in s.com:
compic = Image.open('Com-S.png')
elif "M" in s.com:
compic = Image.open('Com-M.png')
但是,我注意到,有时python会保留上一个循环中使用的图像,因此如果List[1]使用'Com-M.png',List[2]使用'Com-S.png',结果是,在生成图像时,List[2]会将'Com-S.png'叠加在'Com-M.png'上,关于如何解决这个问题,有什么猜测吗?你知道吗
完整循环(垃圾收集器的内容是试图严重清除内存):
for s in L:
scho = 0
if 'Necromancy' in s.school:
scho = necromancy
elif 'Abjuration' in s.school:
scho = abjuration
elif 'Conjuration' in s.school:
scho = conjuration
elif 'Divination' in s.school:
scho = divination
elif 'Evocation' in s.school:
scho = evocation
elif 'Enchantment' in s.school:
scho = enchantment
elif 'Illusion' in s.school:
scho = illusion
elif 'Transmutation' in s.school:
scho = transmutation
else:
scho = abjuration
compic = 0
font = ImageFont.truetype("Livingst.ttf", 48)
#region Components
if 'V,S,M' in s.com:
compic = Image.open('Com-VSM.png')
elif "V,S" in s.com:
compic = Image.open('Com-VS.png')
elif "V,M" in s.com:
compic = Image.open('Com-VM.png')
elif "S,M" in s.com:
compic = Image.open('Com-SM.png')
elif "V" in s.com:
compic = Image.open('Com-V.png')
elif "S" in s.com:
compic = Image.open('Com-S.png')
elif "M" in s.com:
compic = Image.open('Com-M.png')
else:
compic = Image.open('Com-VSM.png')
#endregion
image_copy = scho.image
image_copy.paste(compic, scho.point5, compic)
imgpath = 's.name + '.png'
image_copy.save(imgpath)
del compic
gc.collect()
在
if ... elif ...
中,您忘记了一个else
语句。因此,如果不满足任何条件,就不会在每个循环上设置compic变量。你知道吗您只需要添加一个
else
语句来检查所有情况。你知道吗如果没有,最好的做法是提高
NotImplementedError
,例如:这样更容易找到失踪的病例
相关问题 更多 >
编程相关推荐