Python schedule 模塊使用


使用 schedule 模塊需要引入,這是官方內置模塊,不需要安裝,另外同時需要引入time模塊。

import schedule,time

然后我們看看 schedule 執行定時任務的格式:

首先我們要定義一個函數,把想要執行的任務放進去

def job():
print('時間到了')
每10分鍾執行一次任務

schedule.every(10).minutes.do(job)
每小時執行一次任務

schedule.every().hour.do(job)

每天在什么時間點執行一次任務

schedule.every().day.at('10:30').do(job)
每5-10分鍾(隨機)執行一次任務

schedule.every(5).to(10).minutes.do(job)
每周一執行一次任務

schedule.every().monday.do(job)
每周一什么時間點執行一次任務

schedule.every().monday.at('9:30').do(job)
每分鍾在第17秒的時候執行任務

schedule.every().minute.at(':17').do(job)
在程序最后,設置一個循環,每分鍾檢查一下任務執行狀態

while True:
schedule.run_pending()
time.sleep(1)

通過對上面定時任務的學習,我們做一個簡單的實例:

每天上午8點半定時啟動下面任務
讀取一個csv文檔,隨機讀取一行內容
將內容發郵件到自己的郵箱。

這個其實比較簡單,首先涉及到定時任務,指定時間啟動一個任務。
我們可以把這個任務定義為自定義函數,到時間調用這個函數即可,涉及到自定義函數。
其次是讀取csv文檔,csv其實相當於文本文檔,然后讀取這個文檔有多少行,涉及到 Python 對文檔的讀寫的知識。
然后生成一個行數以內的隨機數,讀取這個隨機數所在行的內容保存到變量,涉及到 Python 列表的知識。
把這個變量的內容發送到自己的郵箱,這個就是Python 使用 yagmail 模塊發送郵件的內容了。

import schedule,time,random,yagmail
def job():
with open('demo.csv', 'r', encoding='gbk') as f:
text = f.readlines()
count = len(text)
news_line = random.randint(1,count-1)
news = text[news_line]
yag = yagmail.SMTP(user='mymail@icoa.cn',host='smtp.icoa.cn')
contents = [news]
yag.send('mymail@icoa.cn','這是一條新聞',contents)
schedule.every().day.at('8:30').do(job)
while True:
schedule.run_pending()
time.sleep(1)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM