Python如何读取指定日期邮件

  介绍

小编给大家分享一下Python如何读取指定日期邮件,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!

Python是什么意思

Python是一种跨平台的,具有解释性,编译性,互动性和面向对象的脚本语言,其最初的设计是用于编写自动化脚本,随着版本的不断更新和新功能的添加,常用于用于开发独立的项目和大型项目。

背景:9月份有部分数据缺失,这部分数据在邮箱里,需要重新拉取,但是每天几百封邮件,总共有6、7万封邮件,使用stat()和retr()结合遍历很

<强>耗时

<>强基于如上背景,初始大致思路为:

使用二分法获取到需要恢复数据时间范围内的中间一个值,也就是第几封邮件,然后分两头遍历,

读取到所有需要的邮件

算法函数:

<强> 1,获取到邮件的时间,由于可能收到格林威治时间邮件,所以这里做了相应的处理

def  getTimeStamp (cn):   消息才能=mailServer.retr (cn) [1]   mail 才能=,email.message_from_bytes (& # 39; \ n # 39; .encode (& # 39; utf - 8 # 39;) . join(消息))   日期才能=email.header.decode_header (mail.get(& # 39;日期# 39;))   utcstr 才能=,日期[0][0].replace (& # 39; + 0 # 39; & # 39; & # 39;)   global  utcdatetime才能   尝试才能:   ,,,utcdatetime =, datetime.datetime.strptime (utcstr, & # 39; %,, % d  % b  % Y  % H: % M: % S  + 0000, (GMT) & # 39;)   ,,,localdatetime =, utcdatetime  +, datetime.timedelta(小时=+ 8)   ,,,localtimestamp =, localdatetime.timestamp ()   除了才能:   ,,,utcdatetime =, datetime.datetime.strptime (utcstr, & # 39; %,, % d  % b  % Y  % H: % M: % S  + 0800 & # 39;)   ,,,localtimestamp =, utcdatetime.timestamp ()   return 才能localtimestamp

<强> 2,二分法

bu_daytimestamp  yesterdaytimestamp两个是需要补数据的时间戳 key_nums=0   mid2=mailCount   while  1==1:   中期才能=getTimeStamp(圆(mailCount))   mid2才能=圆(mid2/2)   if 才能;mid 祝辞bu_daytimestamp:   ,,,mailCount=mailCount-mid2   elif 才能;mid< yesterdaytimestamp:   ,,,mailCount=mailCount + mid2   elif 才能mid  & lt;=bu_daytimestamp 以及mid 祝辞=yesterdaytimestamp:   ,,,key_nums=mailCount   ,才能打破   打印(mailCount)才能   打印(key_nums)

这里只记录算法,后续遍历比较简单,就不展示了

<强>解释下部分参数:

服务器:登录后的邮箱

mailCount:总的邮件数量,来源于mailServer.stat()第二个参数

以上是“Python如何读取指定日期邮件”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

Python如何读取指定日期邮件