微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用IMAPClient,列表索引是否超出for for in in in List循环?

如何解决使用IMAPClient,列表索引是否超出for for in in in List循环?

我不确定是否缺少明显的东西。我正在尝试检索电子邮件并对其进行遍历,以查找文本中的特定项目。该代码运行,但是在遍历所选文件夹中的项目的过程中抛出“列表索引超出范围”错误。我看不到要迭代的列表是要与之在一起的索引位置的列表怎么发生?

我正在使用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)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。