最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

剛學(xué)完怎么用Python實現(xiàn)定時任務(wù),轉(zhuǎn)頭就跑去撩妹!

 更新時間:2021年06月04日 16:41:55   作者:大家一起學(xué)編程(python)  
朋友問我有沒有定時任務(wù)的模塊,并且越簡單越好.剛好前今天就研究了一下定時任務(wù)模塊,于是就告訴他使用方式,令我沒有想到的是,這貨他學(xué)會了之后,居然買了一個服務(wù)器給女朋友發(fā)消息,發(fā)消息,發(fā)消息……重要的事情說三遍,需要的朋友可以參考下

一、發(fā)送消息

import smtplib
from email.mime.text import MIMEText
from email.header import Header
def send_massage(text):
    from_addr = '2469784691@qq.com'  # 郵件發(fā)送人賬號
    to_addrs = '2469784691@qq.com'  # 接收人郵件賬號,可以寫自己的
    qqCode = 'ohkp123fmsldiji'  # 授權(quán)碼(這個要填自己獲取到的)
    stmp = smtplib.SMTP_SSL('smtp.qq.com', 465)# 配置服務(wù)器
    stmp.login(from_addr, qqCode)#發(fā)送人登陸
    message = MIMEText(text, 'plain', 'utf-8')  # 發(fā)送的內(nèi)容
    message['From'] = Header("你的愛人", 'utf-8')  # 發(fā)件人
    message['To'] = Header("老婆", 'utf-8')  # 收件人
    subject = '每天都給你發(fā)消息'#主題
    message['Subject'] = Header(subject, 'utf-8')  # 郵件標(biāo)題
    try:
        stmp.sendmail(from_addr, to_addrs, message.as_string())# 發(fā)送
    except Exception as e:
        print('郵件發(fā)送失敗--' + str(e))
send_massage("因為痛苦太有價值,因為回憶太珍貴,所以我們更要繼續(xù)往前走")

如圖,這下,發(fā)送消息的函數(shù)已經(jīng)有了,然后我們繼續(xù)來看。

二、定時發(fā)送消息

女朋友說:我要你每天早上8點,給我發(fā)送一條消息。

A方案(無裝飾器,傳參)

a、不傳參

模塊只需要導(dǎo)入import schedule 

schedule.every().day.at("8:00").do(send_massage)#不傳參數(shù)while True:#循環(huán)控制 schedule.run_pending()#run_pending:運行所有可以運行的任務(wù)
time.sleep(1)#防止運算速度過快,添加等待。如果不添加可能會導(dǎo)致計算機(jī)卡頓。Cpu直線飆升

就這么搞定了,然后女朋友又說了,你怎么沒有給我發(fā)送內(nèi)容。

好嘛,參數(shù)沒傳。

b、傳參

schedule.every().day.at("8:00").do(send_massage,text="內(nèi)容")#傳參數(shù),多個就傳多個

B方案(有裝飾器,傳參)

a、不傳參

from schedule import *
@repeat(every().day.at("8:00"))#在所需函數(shù)前添加
def send_massage(text):…
while True:#循環(huán)控制
    run_pending()#run_pending:運行所有可以運行的任務(wù)    
time.sleep(1)#防止運算速度過快,添加等待。如果不添加可能會導(dǎo)致計算機(jī)卡頓。Cpu直線飆升

b、傳參

from schedule import *
@repeat(every().day.at("8:00"),text="內(nèi)容")#在所需函數(shù)前添加,參數(shù)多個就傳多個
def send_massage(text):…
while True:#循環(huán)控制
    run_pending()#run_pending:運行所有可以運行的任務(wù)
    time.sleep(1)#防止運算速度過快,添加等待。如果不添加可能會導(dǎo)致計算機(jī)卡頓。Cpu直線飆升

三、多線程發(fā)送消息

好了,現(xiàn)在女朋友的需求又變了,她說:我要你每天早上8:00給我發(fā)早安,晚上八點給我發(fā)晚安。中午你也還要發(fā)消息給我。

A方案(無裝飾器,傳參)

a、不傳參

因為需要使用多線程,那肯定要使用模塊threading

import threading
import schedule
需要添加一個多線程的函數(shù),
def run_threaded(func):
    job_thread = threading.Thread(target=func)
    job_thread.start()
schedule.every().day.at("8:00").do(run_threaded,send_message)#線程1
schedule.every().day.at("20:00").do(run_threaded,send_message)#線程2,
while True:
    schedule.run_pending()
    time.sleep()

b、傳遞參數(shù)

需要給線程傳遞參數(shù),再通過線程把參數(shù)傳給函數(shù):

def run_threaded(func,text):
    job_thread = threading.Thread(target=func,args=(text,))
    job_thread.start()
schedule.every().day.at("8:00").do(run_threaded,send_message,text="內(nèi)容")#線程1
schedule.every().day.at("20:00").do(run_threaded,send_message,text="內(nèi)容")#線程2
while True:
    schedule.run_pending()
    time.sleep(1)

B方案(有裝飾器,傳參)

a、不傳參

裝飾器不再使用對應(yīng)函數(shù)上方,而使用在啟動多線程函數(shù)的上方,添加一個裝飾器表示一個任務(wù),多添加幾個就是多個了,是不是很神奇 

@repeat(every().day.at("8:00"),func=send_massage)
@repeat(every().day.at("20:00"),func=send_massage)
def run_threaded(func):
    job_thread = threading.Thread(target=func)
    job_thread.start()
while True:
    run_pending()    
time.sleep(1)

 b、傳參

傳參的方式也大同小異,裝飾器不再使用對應(yīng)函數(shù)上方,而使用在啟動多線程函數(shù)的上方,如下:

@repeat(every().day.at("8:00"),func=send_massage,text="2354")
@repeat(every().day.at("20:00"),func=send_massage,text="235412341234")
def run_threaded(func,text):
    job_thread = threading.Thread(target=func,args=(text,))
    job_thread.start()
while True:
    run_pending()
    time.sleep(1)

四、總結(jié)

1、常用方法名:

"""
second,秒;seconds
minute,分鐘;minutes
hour,時;hours
day,天;days
monday,周一
tuesday,周二
wednesday,周三
thursday,周四
friday,周五
saturday,周六
sunday,周日
主要方法:
at  在……時候
to …到…
until   直到……時候
"""

2、常用函數(shù)方法:

a、無裝飾器

schedule.every(10).seconds.do(job)#每10秒運行一次
schedule.every(10).minutes.do(job)#每隔十分鐘執(zhí)行一次任務(wù)
schedule.every().hour.do(job)#每小時運行一次
schedule.every().day.at("10:30").do(job)##每天的10:30執(zhí)行一次任務(wù)
schedule.every(5).to(10).minutes.do(job)#每隔5到10分鐘執(zhí)行一次任務(wù)
schedule.every(5).to(10).days.do(job)#每隔5到10天執(zhí)行一次任務(wù)
schedule.every().monday.do(job)#每周一的這個時候執(zhí)行一次任務(wù)
schedule.every().wednesday.at("13:15").do(job)#每周三13:15執(zhí)行一次任務(wù)
schedule.every().minute.at(":17").do(job)#每分鐘在第17秒的時候執(zhí)行任務(wù)
schedule.every().hour.at(":17").do(job)#每小時在第17分鐘的時候執(zhí)行任務(wù)
schedule.every().hours.until("18:30").do(job)# 每個小時運行作業(yè),18:30結(jié)束
schedule.every().hours.until("2030-01-01 18:33").do(job)# 每個小時運行作業(yè),2030-01-01 18:33后停止
schedule.every().hours.until(timedelta(hours=8)).do(job)# 每個小時運行作業(yè),8個小時后停止

b、有裝飾器

@repeat(every(10).seconds)#每10秒運行一次
@repeat(every(10).minutes)#每隔十分鐘執(zhí)行一次任務(wù)
@repeat(every().hour)#每小時運行一次
@repeat(every().day.at("10:30"))##每天的10:30執(zhí)行一次任務(wù)
@repeat(every(5).to(10).minutes)#每隔5到10分鐘執(zhí)行一次任務(wù)
@repeat(every(5).to(10).days)#每隔5到10天執(zhí)行一次任務(wù)
@repeat(every().monday)#每周一的這個時候執(zhí)行一次任務(wù)
@repeat(every().wednesday.at("13:15"))#每周三13:15執(zhí)行一次任務(wù)
@repeat(every().minute.at(":17"))#每分鐘在第17秒的時候執(zhí)行任務(wù)
@repeat(every().hour.at(":17"))#每小時在第17分鐘的時候執(zhí)行任務(wù)@repeat(every().hours.until("18:30"))# 每個小時運行作業(yè),18:30結(jié)束@repeat(every().hours.until("2030-01-01 18:33"))# 每個小時運行作業(yè),2030-01-01 18:33后停止
@repeat(every().hours.until(timedelta(hours=8)))# 每個小時運行作業(yè),8個小時后停止

3、總結(jié)思路

其實單線程和多線程是相通的,重要的是融匯貫通。先掌握單線程,多線程也就迎刃而解了。

多線程唯一不同的不再是使用已確定的函數(shù),而是轉(zhuǎn)變?yōu)樾麻_啟一個線程去執(zhí)行我們需要的函數(shù)。思路如圖:

五、定時給女朋友發(fā)送消息,完整代碼

定時每天早上,晚上發(fā)送消息完整代碼

import smtplib
from email.mime.text import MIMEText
from email.header import Header
import threading
from schedule import *
def send_massage(text):
    from_addr = '2469784691@qq.com'  # 郵件發(fā)送人賬號
    to_addrs = '2469784691@qq.com'  # 接收人郵件賬號,可以寫自己的
    qqCode = 'ohkpw123fmsldiji'  # 授權(quán)碼(這個要填自己獲取到的)
    stmp = smtplib.SMTP_SSL('smtp.qq.com', 465)# 配置服務(wù)器
    stmp.login(from_addr, qqCode)#發(fā)送人登陸
    message = MIMEText(text, 'plain', 'utf-8')  # 發(fā)送的內(nèi)容
    message['From'] = Header("你的愛人", 'utf-8')  # 發(fā)件人
    message['To'] = Header("老婆", 'utf-8')  # 收件人
    subject = '每天都給你發(fā)消息'#主題
    message['Subject'] = Header(subject, 'utf-8')  # 郵件標(biāo)題
    try:
        stmp.sendmail(from_addr, to_addrs, message.as_string())# 發(fā)送
    except Exception as e:
        print('郵件發(fā)送失敗--' + str(e))@repeat(every().day.at("10:00"),func=send_massage,text="早上好")#at之后時間不能小于當(dāng)前時間。
@repeat(every().day.at("20:00"),func=send_massage,text="晚上好")
def run_thread(func,text):#多線程
    thread = threading.Thread(target=func,args=(text,))
    thread.start()
if __name__ == '__main__':
    while True:
        run_pending()
        time.sleep(1)

當(dāng)看見他把代碼部署到服務(wù)器,并每天給女朋友發(fā)送消息時,心里莫名的難受,買個服務(wù)器你用來掛機(jī)掙游戲掙金幣不香嗎?

到此這篇關(guān)于剛學(xué)完怎么用Python實現(xiàn)定時任務(wù),轉(zhuǎn)頭就跑去撩妹!的文章就介紹到這了,更多相關(guān)Python實現(xiàn)定時任務(wù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python實現(xiàn)學(xué)生管理系統(tǒng)源碼

    python實現(xiàn)學(xué)生管理系統(tǒng)源碼

    這篇文章主要為大家詳細(xì)介紹了python實現(xiàn)學(xué)生管理系統(tǒng)源碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • python的pip有什么用

    python的pip有什么用

    在本篇文章里小編給大家整理的是關(guān)于python的pip作用等相關(guān)內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。
    2020-06-06
  • PYQT5 實現(xiàn)給listwidget的滾動條添加滾動信號

    PYQT5 實現(xiàn)給listwidget的滾動條添加滾動信號

    這篇文章主要介紹了PYQT5 實現(xiàn)給listwidget的滾動條添加滾動信號,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • 使用Python中PDB模塊中的命令來調(diào)試Python代碼的教程

    使用Python中PDB模塊中的命令來調(diào)試Python代碼的教程

    這篇文章主要介紹了使用Python中PDB模塊中的命令來調(diào)試Python代碼的教程,包括設(shè)置斷點來修改代碼等、對于Python團(tuán)隊項目工作有一定幫助,需要的朋友可以參考下
    2015-03-03
  • python讀取查看npz/npy文件數(shù)據(jù)以及數(shù)據(jù)完全顯示方法實例

    python讀取查看npz/npy文件數(shù)據(jù)以及數(shù)據(jù)完全顯示方法實例

    前兩天從在GitHub下載了一個代碼,其中的數(shù)據(jù)集是.npz結(jié)尾的文件,之前沒有見過不知道如何處理,下面這篇文章主要給大家介紹了關(guān)于python讀取查看npz/npy文件數(shù)據(jù)以及數(shù)據(jù)完全顯示方法的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • python計算時間差的方法

    python計算時間差的方法

    這篇文章主要介紹了python計算時間差的方法,實例分析了Python時間操作的相關(guān)模塊與技巧,需要的朋友可以參考下
    2015-05-05
  • Django REST Framework之頻率限制的使用

    Django REST Framework之頻率限制的使用

    這篇文章主要介紹了Django REST Framework之頻率限制的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Python實現(xiàn)定時自動關(guān)閉的tkinter窗口方法

    Python實現(xiàn)定時自動關(guān)閉的tkinter窗口方法

    今天小編就為大家分享一篇Python實現(xiàn)定時自動關(guān)閉的tkinter窗口方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-02-02
  • Python3如何日志同時輸出到控制臺和文件

    Python3如何日志同時輸出到控制臺和文件

    這篇文章主要介紹了Python3如何日志同時輸出到控制臺和文件問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • 教你使用一行Python代碼玩遍童年的小游戲

    教你使用一行Python代碼玩遍童年的小游戲

    這篇文章主要介紹了一行Python代碼玩遍童年的小游戲,幫助大家重回童年快樂時光,代碼簡單易懂,感興趣的朋友一起學(xué)習(xí)下吧
    2021-08-08

最新評論

舞钢市| 鸡东县| 广平县| 庆城县| 柘城县| 定日县| 邹城市| 乐至县| 清徐县| 菏泽市| 宾阳县| 康马县| 曲水县| 呼玛县| 湘阴县| 九江县| 德昌县| 新竹县| 民县| 宁陵县| 平顶山市| 渝中区| 青河县| 体育| 静海县| 白沙| 阜平县| 山阳县| 乐业县| 大石桥市| 泰州市| 枞阳县| 黔南| 丰宁| 苗栗市| 安龙县| 淮南市| 漾濞| 揭阳市| 大同县| 益阳市|