用Python写了一个不起床让你后悔的闹钟
Python网络爬虫与数据挖掘
共 6130字,需浏览 13分钟
· 2021-08-06
本文链接:
https://blog.csdn.net/jiahuiandxuehui/article/details/119054251
导读
闹钟
使用的模块
import time
from datetime import datetime
from playsound import playsound#用来播放铃声的
import pyttsx3
如果你对import pyttsx3
不太熟悉的话可以学习一下,就是一个文字朗读模块,一会我们将要用到。
首先我们先来设置闹钟的的预定时间
alarm_time = input("输入要设置的闹钟时间:HH:MM:SS\n")
alarm_period=input("请输入要设置的时期(AM或PM):\n")
alarm_hour=alarm_time[0:2]#获取小时
alarm_minute=alarm_time[3:5]#获取分钟
alarm_seconds=alarm_time[6:8]#多少秒
alarm_period = alarm_period.upper()
print("设置成功正在运行,祝您休息愉快....zzZZ..")
while flag:
now = datetime.now()
current_hour = now.strftime("%I")
current_minute = now.strftime("%M")
current_seconds = now.strftime("%S")
current_period = now.strftime("%p")
if(alarm_period==current_period):
if(alarm_hour==current_hour):
if(alarm_minute==current_minute):
if(alarm_seconds==current_seconds):
print("Wake Up!!!")
playsound('1.mp3') ## 铃声名字最好不要带中文,会节码失败
if(int(now.strftime("%M"))-int(alarm_minute)==10):#延迟十分钟在叫一次
playsound('1.mp3')
time.sleep(60)
pp.say('还不醒?那你可别怪我了都是为你好呀。这就去帮你辞职!哈哈哈哈')
pp.runAndWait()
辞职或分手(肯定用的着,建议记录一下)
import smtplib
smtpObj = smtplib.SMTP( [host [, port [, local_hostname]]] )
参数说明:
host: SMTP 服务器主机。你可以指定主机的ip地址或者域名如: runoob.com,这个是可选参数。
port: 如果你提供了 host 参数, 你需要指定 SMTP 服务使用的端口号,一般情况下 SMTP 端口号为25。
local_hostname: 如果 SMTP 在你的本机上,你只需要指定服务器地址为 localhost 即可。
Python SMTP 对象使用 sendmail 方法发送邮件,语法如下:
to_addrs, msg[, mail_options, rcpt_options])
参数说明:
from_addr: 邮件发送者地址。
to_addrs: 字符串列表,邮件发送地址。
msg: 发送消息
这里要注意一下第三个参数,msg 是字符串,表示邮件。我们知道邮件一般由标题,发信人,收件人,邮件内容,附件等构成,发送邮件的时候,要注意 msg 的格式。这个格式就是 smtp 协议中定义的格式
因为我们要用到QQ邮箱smtp服务发送邮件下面我们也简单介绍一下获取授权码的方法
1·这里找到QQ邮箱
2·
3·
4·
下面进行代码展示
my_sender = '2073969408@qq.com' # 发件人邮箱账号
my_pass = '***' # 授权码
my_user = '2073969408@qq.com' # 收件人邮箱账号,我这边发送给自己
def mail():
ret = True
try:
msg = MIMEText('想睡觉,不干了', 'plain', 'utf-8') # 填写内容
msg['From'] = formataddr(["我是肥学,老子干了", my_sender]) # 括号里的对应发件人邮箱昵称、发件人邮箱账号
msg['To'] = formataddr(["肥学", my_user]) # 括号里的对应收件人邮箱昵称、收件人邮箱账号
msg['Subject'] = "辞职报告" # 邮件的主题,也可以说是标题你也可以写成分手报告
server = smtplib.SMTP_SSL("smtp.qq.com", 465) # 发件人邮箱中的SMTP服务器
server.login(my_sender, my_pass) # 括号中对应的是发件人邮箱账号、邮箱密码
server.sendmail(my_sender, [my_user, ], msg.as_string()) # 括号中对应的是发件人邮箱账号、收件人邮箱账号、发送邮件
server.quit() # 关闭连接
except Exception: # 如果 try 中的语句没有执行,则会执行下面的 ret=False
ret = False
return ret
ret = mail()
if ret:
print("邮件发送成功")
else:
print("邮件发送失败")
import time
from datetime import datetime
from playsound import playsound
import pyttsx3
import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr
def alarm():
pp = pyttsx3.init()
alarm_time = input("输入要设置的闹钟时间:HH:MM:SS\n")
alarm_period=input("请输入要设置的时期(AM或PM):\n")
alarm_hour=alarm_time[0:2]#获取小时
alarm_minute=alarm_time[3:5]#获取分钟
alarm_seconds=alarm_time[6:8]#多少秒
alarm_period = alarm_period.upper()
print("设置成功正在运行,祝您休息愉快....zzZZ..")
flag=True
while flag:
now = datetime.now()
current_hour = now.strftime("%I")
current_minute = now.strftime("%M")
current_seconds = now.strftime("%S")
current_period = now.strftime("%p")
if(alarm_period==current_period):
if(alarm_hour==current_hour):
if(alarm_minute==current_minute):
if(alarm_seconds==current_seconds):
print("Wake Up!!!")
playsound('1.mp3') ## 铃声名字最好不要带中文,会节码失败
if(int(now.strftime("%M"))-int(alarm_minute)==10):#延迟十分钟在叫一次
playsound('1.mp3')
time.sleep(60)
pp.say('还不醒?那你可别怪我了都是为你好呀。这就去帮你辞职!哈哈哈哈')
pp.runAndWait()
return 1
def mail_qq():
my_sender = '2073969408@qq.com' # 发件人邮箱账号
my_pass = '***' # 授权码
my_user = '2073969408@qq.com' # 收件人邮箱账号,我这边发送给自己
def mail():
ret = True
try:
msg = MIMEText('想睡觉,不干了', 'plain', 'utf-8') # 填写内容
msg['From'] = formataddr(["我是肥学,老子干了", my_sender]) # 括号里的对应发件人邮箱昵称、发件人邮箱账号
msg['To'] = formataddr(["肥学", my_user]) # 括号里的对应收件人邮箱昵称、收件人邮箱账号
msg['Subject'] = "辞职报告" # 邮件的主题,也可以说是标题你也可以写成分手报告
server = smtplib.SMTP_SSL("smtp.qq.com", 465) # 发件人邮箱中的SMTP服务器
server.login(my_sender, my_pass) # 括号中对应的是发件人邮箱账号、邮箱密码
server.sendmail(my_sender, [my_user, ], msg.as_string()) # 括号中对应的是发件人邮箱账号、收件人邮箱账号、发送邮件
server.quit() # 关闭连接
except Exception: # 如果 try 中的语句没有执行,则会执行下面的 ret=False
ret = False
return ret
ret = mail()
if ret:
print("邮件发送成功")
else:
print("邮件发送失败")
if __name__ == '__main__':
a=alarm()
if a==1:#如果闹钟没关闭就发邮件
mail_qq()
最重要的事
- EOF -
回复关键字“简明python ”,立即获取入门必备书籍《简明python教程》电子版
回复关键字“爬虫”,立即获取爬虫学习资料
推荐
评论
偷偷告诉你如何一台电脑开多个微信!
大家好,我是轩辕。前几天在粉丝群里,有人问我是怎么在一台电脑上同时登录两个微信的?正好之前写过一篇文章,分析过原理,分享给没看过的小伙伴学习一下。手机端多开微信估计很多人都知道,像华为、小米等手机系统都对此做了支持,不过在运行Windows系统的电脑上怎么启动两个微信呢?其实很简单,你只需要写一个批
编程技术宇宙
0
盘点Lombok的几个骚操作,你绝对没用过!
👉 欢迎加入小哈的星球 ,你将获得: 专属的项目实战 / Java 学习路线 / 一对一提问 / 学习打卡 / 赠书福利全栈前后端分离博客项目 2.0 版本完结啦, 演示链接:http://116.62.199.48/ ,新项目正在酝酿中
小哈学Java
0
堪称最优秀的Docker可视化管理工具——Portainer你真的会用吗?
来源:blog.csdn.net/shark_chili3007/article/details/123366179👉 欢迎加入小哈的星球 ,你将获得: 专属的项目实战 / Java 学习路线 / 一对一提问 / 学习打卡 / 赠书福利全栈前后端分离博客项目
小哈学Java
0
【深度学习】人人都能看懂的LSTM
熟悉深度学习的朋友知道,LSTM是一种RNN模型,可以方便地处理时间序列数据,在NLP等领域有广泛应用。在看了台大李宏毅教授的深度学习视频后,特别是介绍的第一部分RNN以及LSTM,整个人醍醐灌顶。本文就是对视频的记录加上了一些个人的思考。0. 从RNN说起循环神经网络(Recurrent Neur
机器学习初学者
0
如何计算数据中心的冷却需求?
今日分享 【导读】数据中心的冷却要求受多种因素影响,包括设备的热量输出、占地面积、设施设计和电气系统功率额定值等等……众所周知,环境因素会严重影响数据中心设备。过多的热量积聚会损坏服务器,可能导致其自动关闭。经常在高于可接受的温度下运行服务器会缩短其使用
数据中心运维管理
0
多人同时导出 Excel 干崩服务器!新来的阿里大佬给出的解决方案太优雅了!
点击关注公众号,Java 干货及时推送↓推荐阅读:面试辅导,我们出大成果了!来源:juejin.cn/post/7259249904777838629前言 业务诉求:考虑到数据库数据日渐增多,导出会有全量数据的导出,多人同时导出可以会对服务性能造成影响,导出涉及到mysql查询的io操作,
Java技术栈
1
谷歌员工爆料Python基础团队原地解散
机器之心报道编辑:蛋酱什么?谷歌解雇了整个 Python 基础团队?「当与你直接共事的每个人,包括你的主管,都被裁员 —— 哦,是职位被削减,而你被要求安排他们的替代者入职,这些人被告知在不同的国家担任同样的职位,但他们并不为此感到高兴,这是很艰难的一天。」发布这一动态的 Thomas Wouter
机器学习初学者
0
知乎热议:博士生最好的状态是什么?
链接:https://www.zhihu.com/question/447412618编辑:深度学习与计算机视觉声明:仅做学术分享,侵删作者:JackieLeehttps://www.zhihu.com/question/447412618/answer/2963078772最好状态比较难说,最开心
机器学习初学者
0