婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 剛學完怎么用Python實現定時任務,轉頭就跑去撩妹!

剛學完怎么用Python實現定時任務,轉頭就跑去撩妹!

熱門標簽:海外網吧地圖標注注冊 打電話機器人營銷 聊城語音外呼系統 騰訊地圖標注沒法顯示 ai電銷機器人的優勢 商家地圖標注海報 南陽打電話機器人 孝感營銷電話機器人效果怎么樣 地圖標注自己和別人標注區別

一、發送消息

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

如圖,這下,發送消息的函數已經有了,然后我們繼續來看。

二、定時發送消息

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

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

a、不傳參

模塊只需要導入import schedule 

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

就這么搞定了,然后女朋友又說了,你怎么沒有給我發送內容。

好嘛,參數沒傳。

b、傳參

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

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

a、不傳參

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

b、傳參

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

三、多線程發送消息

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

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

a、不傳參

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

import threading
import schedule
需要添加一個多線程的函數,
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、傳遞參數

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

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="內容")#線程1
schedule.every().day.at("20:00").do(run_threaded,send_message,text="內容")#線程2
while True:
    schedule.run_pending()
    time.sleep(1)

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

a、不傳參

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

@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、傳參

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

@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)

四、總結

1、常用方法名:

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

2、常用函數方法:

a、無裝飾器

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

b、有裝飾器

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

3、總結思路

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

多線程唯一不同的不再是使用已確定的函數,而是轉變為新開啟一個線程去執行我們需要的函數。思路如圖:

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

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

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'  # 郵件發送人賬號
    to_addrs = '2469784691@qq.com'  # 接收人郵件賬號,可以寫自己的
    qqCode = 'ohkpw123fmsldiji'  # 授權碼(這個要填自己獲取到的)
    stmp = smtplib.SMTP_SSL('smtp.qq.com', 465)# 配置服務器
    stmp.login(from_addr, qqCode)#發送人登陸
    message = MIMEText(text, 'plain', 'utf-8')  # 發送的內容
    message['From'] = Header("你的愛人", 'utf-8')  # 發件人
    message['To'] = Header("老婆", 'utf-8')  # 收件人
    subject = '每天都給你發消息'#主題
    message['Subject'] = Header(subject, 'utf-8')  # 郵件標題
    try:
        stmp.sendmail(from_addr, to_addrs, message.as_string())# 發送
    except Exception as e:
        print('郵件發送失敗--' + str(e))@repeat(every().day.at("10:00"),func=send_massage,text="早上好")#at之后時間不能小于當前時間。
@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)

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

到此這篇關于剛學完怎么用Python實現定時任務,轉頭就跑去撩妹!的文章就介紹到這了,更多相關Python實現定時任務內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • python 實現定時任務的四種方式
  • python 基于Apscheduler實現定時任務
  • Python定時任務框架APScheduler原理及常用代碼
  • Python定時任務APScheduler安裝及使用解析
  • Python while true實現爬蟲定時任務
  • Python定時任務隨機時間執行的實現方法
  • python異步實現定時任務和周期任務的方法

標簽:楊凌 六盤水 迪慶 揚州 聊城 牡丹江 南寧 撫州

巨人網絡通訊聲明:本文標題《剛學完怎么用Python實現定時任務,轉頭就跑去撩妹!》,本文關鍵詞  剛學,完,怎么,用,Python,實現,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《剛學完怎么用Python實現定時任務,轉頭就跑去撩妹!》相關的同類信息!
  • 本頁收集關于剛學完怎么用Python實現定時任務,轉頭就跑去撩妹!的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 普陀区| 武穴市| 兴山县| 博罗县| 岑巩县| 东乡县| 东阿县| 昌邑市| 新巴尔虎左旗| 射阳县| 沂源县| 阿拉尔市| 紫云| 石林| 顺义区| 穆棱市| 商南县| 古蔺县| 凤山市| 碌曲县| 正镶白旗| 安达市| 安义县| 和林格尔县| 蒲城县| 延庆县| 丰县| 田东县| 嘉兴市| 全州县| 深州市| 高密市| 璧山县| 九龙县| 高阳县| 治多县| 天峨县| 大荔县| 上蔡县| 宜章县| 利津县|