问题描述
我不确定是否缺少明显的东西。我正在尝试检索电子邮件并对其进行遍历,以查找文本中的特定项目。该代码运行,但是在遍历所选文件夹中的项目的过程中抛出“列表索引超出范围”错误。我看不到要迭代的列表是要与之在一起的索引位置的列表怎么发生?
我正在使用IMAPClient程序包,并且我的脚本选择了正确的文件夹,并找到具有特定主题的电子邮件,然后返回列表
client.select_folder('WebsiteMessages',readonly=True)
result = client.search('SUBJECT "User Details"')
print(result)
[1,2,9,10,11,15,19,22,23,24,25,26,27,28,30,32,36,46,48,49,51,55,57,60,61]
如果我尝试遍历该列表,则会到达特定点,然后使列表索引超出范围错误。
for i in result:
message = client.fetch(result[i],b'RFC822')
print(message)
我不知道看到该列表是由搜索生成的,该错误如何发生?有什么想法吗?
解决方法
未经测试,只是一个猜测:
for i in result:
message = client.fetch(i,b'RFC822')
print(message)
i
已经是该值,使用它作为该值的索引是不正确的。
第二种解决方案,可能是您想要的:
for i in range(result):
message = client.fetch(result[i],b'RFC822')
print(message)