Python定时模块的使用有什么好处,如何做发邮件
Admin 2022-08-25 群英技术资讯 267 次浏览
python中有一个轻量级的定时任务调度的库:schedule。它可以完成每分钟,每小时,每天,周几,特定日期的定时任务。因此十分方便我们执行一些轻量级的定时任务。
定时任务:
在 特定的时间 自动的执行一些任务的功能, python 中的 schedule 模块可以使我们方便简单的使用定时任务。
schedule 的安装:
pip install schedule 如果安装失败,尝试一下更换国内的镜像源。
每过多少分钟执行一次 func函数 ,args是函数的参数 :
schedule.every(count).minutes.do(func, args)
每天的 10:20 执行一次 func 函数,args是函数的参数 :
schedule.every().day.at("10:20").do(func, args)
schedule 模块支持的时间如下:
类型 | 说明 |
---|---|
minutes | 分钟 |
seconds | 秒 |
hour | 小时 |
day | 天 |
week | 周 |
schedule
模块支持的时间远不止这些,这里至介绍了常用的几个时间方式。
类型 | 说明 |
---|---|
schedule.run_pending | 执行 |
PS:要放在 "while" 中执行,并且利用时间至少 1秒 的阻塞。
代码示例如下:
# coding:utf-8 import smtplib import time import schedule # pip install schedule from email.mime.text import MIMEText from email.header import Header from email.mime.multipart import MIMEMultipart ''' 第三方的 smpt [脚本中涉及的邮箱地址都是假的,请使用自己的真实邮箱地址进行测试] ''' mail_host = "smtp.sina.com" # 设置邮箱服务器 mail_user = "conan868242" # 设置自己的邮箱 mail_pass = "cb997b01a87232b2" # 这里就是邮箱的口令,也就是授权码;不是密码。 sender = "conan868242@sina.com" # 定义发送者邮箱(其实就是自己) receivers = ["3241716373@qq.com"] # 定义接受者邮箱(可以是多个接收者) # message = MIMEText('<p style="color:red;">这是一个测试</p>', "html", "utf-8") # 定义邮件内容;"plain"是格式,表示是普通的文件内容 message = MIMEMultipart() # 定义带有附件的邮件对象 message["From"] = Header(sender) # 在message内定义发送信息 --> 发送者 message["Subject"] = Header("Python 测试邮件发送", "utf-8") # 在message内定义发送信息的标题 # print("加密后的发送内容\n", message.as_string()) # 打印输出加密后的发送内容 attr = MIMEText(open('send.py', 'rb').read(), 'base64', 'utf-8') # 定义带有附件的邮件发送内容;(默认是一种属性); # 以 open 的形式将需要发送的文件读出来 # 定义内容为"base64"格式 attr['Content-Type'] = 'application/octet-stream' # 针对属性进行格式上的定义;"application/octet-stream"代表着流上的一种协议 # 即定义 "附件" 的类型 attr['Content-Disposition'] = 'attachment;filename="send.py"' # 针对传输的附件定义一个名称 message.attach(attr) # 利用 "message" 的 "attach" 函数将 "附件" 添加进去 message = MIMEText('这是一个带附件的邮件', "plain", "utf-8") # 定义邮件文字内容(即添加邮件的主内容) def send(): print("邮件开始发送") try: # 捕获发送邮件的异常 smtpObj = smtplib.SMTP() # 实例化 SMTP 协议对象 smtpObj.connect(mail_host, 25) # 链接 SMTP 服务器 smtpObj.login(mail_user, mail_pass) # 登录邮箱验证 smtpObj.sendmail(sender, receivers, message.as_string()) # 发送邮件; "message" 通过 "as_string()" 进行发送内容字符串的加密 except smtplib.SMTPException as error: print("error:{}".format(error)) if __name__ == '__main__': schedule.every(10).seconds.do(send) # 每隔十秒钟发送一次邮件 while True: # 启动定时任务,延时1秒。 schedule.run_pending() time.sleep(1)
PS:可以考虑加上发送邮件和定时任务之间的时间差,进行定时任务的调试,这里我就偷懒不写了哈。
运行结果如下:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
PyTorch是一个开源的Python机器学习库,基于Torch,用于自然语言处理等应用程序。它具有强大的GPU加速的张量计算和自动求导系统的深度神经网络。本文将介绍如何通过PyTorch实现病虫害图像分类,感兴趣的可以学习一下
如何用python实现自动翻译工具?很多朋友应该都有遇到过,在查找资料的时候,一些资料都是有大量英文的,那么这对于英文不是很好地朋友来说,阅读就比较困难,因此自动翻译攻击就显得很重要,对这这篇文章就给大家来分析Python 实现自动化翻译和替换的脚本,感兴趣的朋友就接着看吧。
这篇文章主要介绍了python数学建模之Numpy 应用介绍与Pandas学习,NumPy 是一个运行速度非常快的数学库,一个开源的的python科学计算库,主要用于数组、矩阵计算
这篇文章主要为大家介绍了Python字典查找性能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助<BR>
这篇文章主要介绍了Python解决爬虫程序卡死问题,文章围绕主题展开详细内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008