社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

用Python写了一个不起床让你后悔的闹钟

Python面试官 • 2 天前 • 25 次点击  

本文链接:

https://blog.csdn.net/jiahuiandxuehui/article/details/119054251


导读

哎 😡 ,别提了自从回到家整个人都懒散了,总被人嫌弃不说还觉得生活没有了盼头,还好在社区认识了一些大佬让我想重新来过 做回自己,不在做小丑于是乎我就想用个东西来提醒我别睡懒觉,然后这篇文章就诞生了。来吧看看今天的故事。

闹钟

有人说程序员的日常就是反复造轮子,我觉得能在原来的基础上玩出新花样来帮到一些人,做这些事还是挺有趣的这篇文。没有什么高深的学问就是给大家在枯燥的夏日带来一点欢愉。

使用的模块

import timefrom datetime import datetimefrom 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()

原理很简单,就是一堆判断大概是这样的

🌀
🐢
🌀

辞职或分手(肯定用的着,建议记录一下)

这里我们用到Python SMTP发送邮件
简单介绍一下

import smtplib
smtpObj = smtplib.SMTP( [host [, port [, local_hostname]]] )参数说明:
host: SMTP 服务器主机。你可以指定主机的ip地址或者域名如: runoob.com,这个是可选参数。port: 如果你提供了 host 参数, 你需要指定 SMTP 服务使用的端口号,一般情况下 SMTP 端口号为25。local_hostname: 如果 SMTP 在你的本机上,你只需要指定服务器地址为 localhost 即可。


PythonSMTP 对象使用 sendmail 方法发送邮件,语法如下:
SMTP.sendmail(from_addr,to_addrs, msg[, mail_options, rcpt_options])参数说明:
from_addr: 邮件发送者地址。to_addrs: 字符串列表,邮件发送地址。msg: 发送消息这里要注意一下第三个参数,msg 是字符串,表示邮件。我们知道邮件一般由标题,发信人,收件人,邮件内容,附件等构成,发送邮件的时候,要注意 msg 的格式。这个格式就是 smtp 协议中定义的格式

因为我们要用到QQ邮箱smtp服务发送邮件下面我们也简单介绍一下获取授权码的方法
1·这里找到QQ邮箱






下面进行代码展示

my_sender = '2073969408@qq.com'# 发件人邮箱账号    my_pass = '***'# 授权码    my_user = '2073969408@qq.com'# 收件人邮箱账号,我这边发送给自己
defmail():        ret = Truetry:            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 = Falsereturn ret
    ret = mail()if ret:        print("邮件发送成功")else:        print("邮件发送失败")

结果:我这个是自己给自己发了一个的测试
🌀
🐢
🌀

暂时还没有工作的同学可以同样的方法把邮箱改成你对象的邮箱,嘻嘻嘻。这不就可以治治你的懒床了吗。

🌀
🐢
🌀
好了下面贴出全部代码:

import timefrom datetime import datetimefrom playsound import playsoundimport pyttsx3
import smtplibfrom email.mime.text import MIMETextfrom email.utils import formataddr
defalarm():    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=Truewhile 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()return1
defmail_qq():    my_sender = '2073969408@qq.com'# 发件人邮箱账号    my_pass = '***'# 授权码    my_user = '2073969408@qq.com'# 收件人邮箱账号,我这边发送给自己
defmail():        ret = Truetry:            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 = Falsereturn ret
    ret = mail()if ret:        print("邮件发送成功")else:        print("邮件发送失败")
if __name__ == '__main__':    a=alarm()if a==1:#如果闹钟没关闭就发邮件        mail_qq()

最重要的事

好了今天的分享就到这里,绿水青山总是情,给个点赞行不行 😃 😗 😃 感谢各位大佬了。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/185724
 
25 次点击