專治懶床
- 導讀
- 鬧鐘
- 辭職或分手(肯定用的著,建議記錄一下)
- 最重要的事
導讀
哎 😡 ,別提了自從回到家整個人都懶散了,總被人嫌棄不說還覺得生活沒有了盼頭,還好在社區認識了一些大佬讓我想重新來過 做回自己,不在做小丑
于是乎我就想用個東西來提醒我別睡懶覺,然后這篇文章就誕生了,來吧看看今天的故事,
鬧鐘
有人說程式員的日常就是反復造輪子,我覺得能在原來的基礎上玩出新花樣來幫到一些人,做這些事還是挺有趣的這篇文,沒有什么高深的學問就是給大家在枯燥的夏日帶來一點歡愉,
使用的模塊
import time
from datetime import datetime
from playsound import playsound#用來播放鈴聲的
import pyttsx3
如果你對import pyttsx3不太熟悉的話可以看看這個python模擬萌妹音讓室友瘋狂吃雞就是一個文字朗讀模塊一會我們將要用到
首先我們先來設定鬧鐘的的預定時間
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 即可,
Python SMTP 物件使用 sendmail 方法發送郵件,語法如下:
SMTP.sendmail(from_addr, 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()
最重要的事
好了今天的分享就到這里,綠水青山總是情,給個三聯行不行 😃 😗 😃 感謝各位大佬了,
另外肥學剛建了連個專欄一個適合小白練手:編程小白進階
還有適合小白練手的專案:練手專案
歡迎大家訂閱哦
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/290708.html
標籤:其他
