如何利用python编写日期的程序(Python读取指定日期邮件的实例)
类别:脚本大全 浏览量:618
时间:2022-03-31 12:36:15 如何利用python编写日期的程序
Python读取指定日期邮件的实例背景:9月份有部分数据缺失,这部分数据在邮箱里,需要重新拉取,但是每天几百封邮件,总共有6、7万封邮件,使用stat()和retr(which)结合遍历很
耗时
基于如上背景,初始大致思路为:
使用二分法获取到需要恢复数据时间范围内的中间一个值,也就是第几封邮件,然后分两头遍历,
读取到所有需要的邮件
算法函数:
1、获取到邮件的时间,由于可能收到格林威治时间邮件,所以这里做了相应的处理
|
def getTimeStamp(cn): messages = mailServer.retr(cn)[ 1 ] mail = email.message_from_bytes( '\n' .encode( 'utf-8' ).join(messages)) date = email.header.decode_header(mail.get( 'date' )) utcstr = date[ 0 ][ 0 ].replace( '+00:00' ,'') global utcdatetime try : utcdatetime = datetime.datetime.strptime(utcstr, '%a, %d %b %Y %H:%M:%S +0000 (GMT)' ) localdatetime = utcdatetime + datetime.timedelta(hours = + 8 ) localtimestamp = localdatetime.timestamp() except : utcdatetime = datetime.datetime.strptime(utcstr, '%a, %d %b %Y %H:%M:%S +0800' ) localtimestamp = utcdatetime.timestamp() return localtimestamp |
2、二分法
|
bu_daytimestamp yesterdaytimestamp两个是需要补数据的时间戳 |
|
key_nums = 0 mid2 = mailCount while 1 = = 1 : mid = getTimeStamp( round (mailCount)) mid2 = round (mid2 / 2 ) if mid >bu_daytimestamp: mailCount = mailCount - mid2 elif mid<yesterdaytimestamp: mailCount = mailCount + mid2 elif mid < = bu_daytimestamp and mid > = yesterdaytimestamp: key_nums = mailCount break print (mailCount) print (key_nums) |
这里只记录算法,后续遍历比较简单,就不展示了
解释下部分参数:
mailServer:登录后的邮箱
mailCount:总的邮件数量,来源于mailServer.stat()第二个参数
以上这篇Python读取指定日期邮件的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持开心学习网。
原文链接:https://blog.csdn.net/tcl415829566/article/details/78481932
您可能感兴趣
- pythonopt用法(Python语言检测模块langid和langdetect的使用实例)
- python图书管理系统(python面向对象法实现图书管理系统)
- python中的insert(python assert的用处示例详解)
- python获取网关ip地址(python实现扫描局域网指定网段ip的方法)
- python 数据库实现学生管理系统(python+mysql实现教务管理系统)
- python常用的字符串操作方法(Python字符串的常见操作实例小结)
- pyqt5怎么在pycharm中安装(pycharm+PyQt5+python最新开发环境配置踩坑)
- python plot绘图(python使用Plotly绘图工具绘制气泡图)
- 如何用python识别微信内容(Python 实现微信防撤回功能)
- python自带的ide的使用(基于python的ini配置文件操作工具类)
- python编写计算机病毒教程(Python告诉你木马程序的键盘记录原理)
- 2021-10-07 00:38:09
- python flask部署实例(Python Flask框架扩展操作示例)
- Python实现FTP弱口令扫描器的方法示例(Python实现FTP弱口令扫描器的方法示例)
- python找出数组的最大值(Python查找数组中数值和下标相等的元素示例二分查找)
- python获取excelsheet名称(python查询文件夹下excel的sheet名代码实例)
- 包水饺(包水饺手法怎么包视频)
- 越南河粉(越南河粉来自哪里)
- 按这几方面养护佛肚竹盆景,保证枝叶繁茂,造型优美(按这几方面养护佛肚竹盆景)
- 冰岛旅游攻略(冰岛旅游攻略及花费八日游)
- 寒假旅游攻略(成都寒假旅游攻略)
- 菲律宾旅游攻略(菲律宾旅游攻略地图)
热门推荐
- Visual Studio 自动添加头部注释
- 国内优惠的云服务器租用多少钱(云服务器租用的价格怎么算?)
- python批量创建字典(Python编写合并字典并实现敏感目录的小脚本)
- tomcat配置远程调试(一次tomcat源码启动控制台中文乱码的调试过程记录)
- python获取excelsheet名称(python查询文件夹下excel的sheet名代码实例)
- lnmp环境配置要多大空间(LNMP系列教程之 设置404错误页面)
- 块级元素水平垂直居中
- vue项目上线教程(vue项目中使用骨架屏的方法)
- laravel框架的业务流程顺序(Laravel+Dingo/Api 自定义响应的实现)
- mysql索引如何使用(MySQL 索引和数据表该如何维护)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9