用Python寫了一個不起床讓你后悔的鬧鐘
本文鏈接:
https://blog.csdn.net/jiahuiandxuehui/article/details/119054251
導(dǎo)讀
鬧鐘
使用的模塊
import timefrom datetime import datetimefrom playsound import playsound#用來播放鈴聲的import pyttsx3
如果你對import pyttsx3不太熟悉的話可以學(xué)習(xí)一下,就是一個文字朗讀模塊,一會我們將要用到。
首先我們先來設(shè)置鬧鐘的的預(yù)定時間
alarm_time = input("輸入要設(shè)置的鬧鐘時間:HH:MM:SS\n")alarm_period=input("請輸入要設(shè)置的時期(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("設(shè)置成功正在運(yùn)行,祝您休息愉快....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') ## 鈴聲名字最好不要帶中文,會節(jié)碼失敗if(int(now.strftime("%M"))-int(alarm_minute)==10):#延遲十分鐘在叫一次playsound('1.mp3')time.sleep(60)pp.say('還不醒?那你可別怪我了都是為你好呀。這就去幫你辭職!哈哈哈哈')pp.runAndWait()
辭職或分手(肯定用的著,建議記錄一下)
import smtplibsmtpObj = smtplib.SMTP( [host [, port [, local_hostname]]] )參數(shù)說明:host: SMTP 服務(wù)器主機(jī)。你可以指定主機(jī)的ip地址或者域名如: runoob.com,這個是可選參數(shù)。port: 如果你提供了 host 參數(shù), 你需要指定 SMTP 服務(wù)使用的端口號,一般情況下 SMTP 端口號為25。local_hostname: 如果 SMTP 在你的本機(jī)上,你只需要指定服務(wù)器地址為 localhost 即可。
Python SMTP 對象使用 sendmail 方法發(fā)送郵件,語法如下:to_addrs, msg[, mail_options, rcpt_options])參數(shù)說明:from_addr: 郵件發(fā)送者地址。to_addrs: 字符串列表,郵件發(fā)送地址。msg: 發(fā)送消息這里要注意一下第三個參數(shù),msg 是字符串,表示郵件。我們知道郵件一般由標(biāo)題,發(fā)信人,收件人,郵件內(nèi)容,附件等構(gòu)成,發(fā)送郵件的時候,要注意 msg 的格式。這個格式就是 smtp 協(xié)議中定義的格式
因?yàn)槲覀円玫絈Q郵箱smtp服務(wù)發(fā)送郵件下面我們也簡單介紹一下獲取授權(quán)碼的方法
1·這里找到QQ郵箱
2·
3·
4·
下面進(jìn)行代碼展示
my_sender = '[email protected]' # 發(fā)件人郵箱賬號my_pass = '***' # 授權(quán)碼my_user = '[email protected]' # 收件人郵箱賬號,我這邊發(fā)送給自己def mail():ret = Truetry:msg = MIMEText('想睡覺,不干了', 'plain', 'utf-8') # 填寫內(nèi)容msg['From'] = formataddr(["我是肥學(xué),老子干了", my_sender]) # 括號里的對應(yīng)發(fā)件人郵箱昵稱、發(fā)件人郵箱賬號msg['To'] = formataddr(["肥學(xué)", my_user]) # 括號里的對應(yīng)收件人郵箱昵稱、收件人郵箱賬號msg['Subject'] = "辭職報告" # 郵件的主題,也可以說是標(biāo)題你也可以寫成分手報告server = smtplib.SMTP_SSL("smtp.qq.com", 465) # 發(fā)件人郵箱中的SMTP服務(wù)器server.login(my_sender, my_pass) # 括號中對應(yīng)的是發(fā)件人郵箱賬號、郵箱密碼server.sendmail(my_sender, [my_user, ], msg.as_string()) # 括號中對應(yīng)的是發(fā)件人郵箱賬號、收件人郵箱賬號、發(fā)送郵件server.quit() # 關(guān)閉連接except Exception: # 如果 try 中的語句沒有執(zhí)行,則會執(zhí)行下面的 ret=Falseret = Falsereturn retret = mail()if ret:print("郵件發(fā)送成功")else:print("郵件發(fā)送失敗")
import timefrom datetime import datetimefrom playsound import playsoundimport pyttsx3import smtplibfrom email.mime.text import MIMETextfrom email.utils import formataddrdef alarm():pp = pyttsx3.init()alarm_time = input("輸入要設(shè)置的鬧鐘時間:HH:MM:SS\n")alarm_period=input("請輸入要設(shè)置的時期(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("設(shè)置成功正在運(yùn)行,祝您休息愉快....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') ## 鈴聲名字最好不要帶中文,會節(jié)碼失敗if(int(now.strftime("%M"))-int(alarm_minute)==10):#延遲十分鐘在叫一次playsound('1.mp3')time.sleep(60)pp.say('還不醒?那你可別怪我了都是為你好呀。這就去幫你辭職!哈哈哈哈')pp.runAndWait()return 1def mail_qq():my_sender = '[email protected]' # 發(fā)件人郵箱賬號my_pass = '***' # 授權(quán)碼my_user = '[email protected]' # 收件人郵箱賬號,我這邊發(fā)送給自己def mail():ret = Truetry:msg = MIMEText('想睡覺,不干了', 'plain', 'utf-8') # 填寫內(nèi)容msg['From'] = formataddr(["我是肥學(xué),老子干了", my_sender]) # 括號里的對應(yīng)發(fā)件人郵箱昵稱、發(fā)件人郵箱賬號msg['To'] = formataddr(["肥學(xué)", my_user]) # 括號里的對應(yīng)收件人郵箱昵稱、收件人郵箱賬號msg['Subject'] = "辭職報告" # 郵件的主題,也可以說是標(biāo)題你也可以寫成分手報告server = smtplib.SMTP_SSL("smtp.qq.com", 465) # 發(fā)件人郵箱中的SMTP服務(wù)器server.login(my_sender, my_pass) # 括號中對應(yīng)的是發(fā)件人郵箱賬號、郵箱密碼server.sendmail(my_sender, [my_user, ], msg.as_string()) # 括號中對應(yīng)的是發(fā)件人郵箱賬號、收件人郵箱賬號、發(fā)送郵件server.quit() # 關(guān)閉連接except Exception: # 如果 try 中的語句沒有執(zhí)行,則會執(zhí)行下面的 ret=Falseret = Falsereturn retret = mail()if ret:print("郵件發(fā)送成功")else:print("郵件發(fā)送失敗")if __name__ == '__main__':a=alarm()if a==1:#如果鬧鐘沒關(guān)閉就發(fā)郵件mail_qq()
評論
圖片
表情


