如何利用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
您可能感兴趣
- linux下python安装pip(在Docker中的ubuntu中安装Python3和Pip的问题)
- python闭包的讲解(详解python函数的闭包问题内部函数与外部函数详述)
- python numpy矩阵详解(基于Numpy.convolve使用Python实现滑动平均滤波的思路详解)
- python中encode中文自定义编码(详解Python解决抓取内容乱码问题decode和encode解码)
- python如何判断文件是否结束(python判断文件是否存在,不存在就创建一个的实例)
- 如何对python中列表中的数据运算(Python3.5集合及其常见运算实例详解)
- python撤回的微信消息怎么看(Python实现微信消息防撤回功能的实例代码)
- python删除数据框重复变量(Python3删除排序数组中重复项的方法分析)
- python调用支付宝支付接口(python实现支付宝转账接口)
- python的编码方式(Python中文编码知识点)
- python获取游戏画面信息(python游戏开发之视频转彩色字符动画)
- python图片识别文字代码(python批量识别图片指定区域文字内容)
- python 循环遍历新方法(python for 循环获取index索引的方法)
- python表白代码演示(python3实现表白神器)
- python3.8基本操作(Python3.5文件修改操作实例分析)
- python如何编写判断正负数程序(Python实现判断一个整数是否为回文数算法示例)
- 刘韬涛丁子贺小品《根治低头族》台词剧本(刘韬涛丁子贺小品根治低头族台词剧本)
- 看完《夺冠》,黄渤的演技我实在夸不起来,彭昱畅反令人惊喜(黄渤的演技我实在夸不起来)
- 黄渤泪目 我的痴呆父亲,我内心永远的痛(黄渤泪目我的痴呆父亲)
- 蒜苔和鱿鱼尾巴一起炒,味道特别棒,又脆又嫩,有滋又有味(蒜苔和鱿鱼尾巴一起炒)
- 鱿鱼炒蒜苔不是黑暗料理,这样做清香扑鼻,鲜美脆嫩,开胃又下饭(鱿鱼炒蒜苔不是黑暗料理)
- 蒜苔炒鱿鱼(蒜苔炒鱿鱼)
热门推荐
- mysql详细学习笔记(Mysql常用命令 详细整理版)
- nodejs实现websocket服务端(Node.js+express+socket实现在线实时多人聊天室)
- laravel数据绑定(laravel-admin表单提交隐藏一些数据,回调时获取数据的方法)
- 怎么用html做一个导航栏(html+css 实现简易导航栏功能)
- html 设置canvas的背景图可缩放(浅析canvas元素的html尺寸和css尺寸对元素视觉的影响)
- python3.8爬虫需要的包(python爬取基于m3u8协议的ts文件并合并)
- sqlserver限制windows身份登录(解决sql server 数据库,sa用户被锁定的问题)
- php性能优化的思路和步骤(FastCGI轻松搞定IIS7.5+PHP5.6.0环境)
- textarea换行属性(处理textarea中的换行和空格)
- C#类的访问修饰符
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9