Python實(shí)現(xiàn)多腳本處理定時(shí)運(yùn)行
前言:
管理多腳本,要實(shí)現(xiàn)大量統(tǒng)計(jì)計(jì)算以及大量腳本進(jìn)行統(tǒng)計(jì),定時(shí)運(yùn)行并反饋結(jié)果是很多大數(shù)據(jù)項(xiàng)目場(chǎng)景中十分常見(jiàn)的,就該問(wèn)題本篇文章提供思路方法以及部分代碼。
一、創(chuàng)建時(shí)間
首先可以通過(guò)python自帶的datetime庫(kù)獲取本地時(shí)間,對(duì)于Pythpn時(shí)間序列想要更深入的了解可以參閱:Pandas處理時(shí)間序列數(shù)據(jù)操作詳解
python3是自帶datetime庫(kù)的,他有自身代表時(shí)間的數(shù)據(jù)類型datetime。由此我們可以根據(jù)datetime數(shù)據(jù)結(jié)構(gòu)進(jìn)行運(yùn)算,運(yùn)用邏輯可以達(dá)到一定的時(shí)間控制。但首先我們需要擁有關(guān)于datetime數(shù)據(jù)類型的知識(shí),好讓我們創(chuàng)建我們想要的日期。
創(chuàng)建datetime很簡(jiǎn)單:
from datetime import datetime as dt dt=dt(2022,5,23)
這就創(chuàng)建了一個(gè)2022年5月23日的datetime數(shù)據(jù)類型。
若想要轉(zhuǎn)換為我們熟知的日期格式,我們可以使用strftime函數(shù)自定義格式,這里給出strftime函數(shù)的用法:
dt.strftime('%m/%d/%Y %H:%M:%S')
二、設(shè)定時(shí)間
首先我們可以設(shè)定起始任務(wù)時(shí)間,假設(shè)我們的腳本自動(dòng)在早上2點(diǎn)到6點(diǎn)運(yùn)行一次,并且獲取當(dāng)天日期作為初始的開(kāi)始執(zhí)行日期:
creatTime=datetime.time(2,0,0) closeTime=datetime.time(6,0,0) startDate=datetime.datetime.now() 我們需要獲取當(dāng)前時(shí)間和日期: #獲取當(dāng)前時(shí)間 currentTime=datetime.now().time #獲取當(dāng)前日期 currentTime=darerime.now().date
然后我們只要規(guī)定每當(dāng)本地時(shí)間在2點(diǎn)到6點(diǎn)這個(gè)范圍,我們就執(zhí)行腳本:
if(startDate<=currentDate)and(creatTime<=currentTime<=closeTime): ? ? ? ? #執(zhí)行以下python腳本 ? ? ? ? print('---------') ? ? ? ? print('執(zhí)行成功')
然后我們需要修改開(kāi)始日期,讓其+1天能夠保持每天持續(xù)更新,這里使用到了時(shí)間推移函數(shù):
timedelta類表示為時(shí)間差,可直接實(shí)例化也可以由兩個(gè)datetime進(jìn)行相減操作得到。
可表示的時(shí)間差依次為:
days,seconds,microseconds,minutes,hours,weeks
startDate=(datetime.datetime.now()+datetime.timedelta(days=1))
總代碼如下:
from datetime import datetime as dt import time creatTime=datetime.time(2,0,0) closeTime=datetime.time(6,0,0) startDate=datetime.datetime.now() while True: ? ? #獲取當(dāng)前時(shí)間 ? ? currentTime=datetime.datetime.now().time ? ? #獲取當(dāng)前日期 ? ? currentDate=datetime.datetime.now().date ? ? if(startDate<=currentDate)and(creatTime<=currentTime<=closeTime): ? ? ? ? #執(zhí)行以下python腳本 ? ? ? ? print('---------') ? ? ? ? print('執(zhí)行成功') ? ? ? ? #成功以后執(zhí)行日期改為下一天 ? ? ? ? startDate=(datetime.datetime.now()+datetime.timedelta(days=1))
到此這篇關(guān)于Python實(shí)現(xiàn)多腳本處理定時(shí)運(yùn)行的文章就介紹到這了,更多相關(guān)Pythpn定時(shí)運(yùn)行內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- centos 自動(dòng)運(yùn)行python腳本和配置 Python 定時(shí)任務(wù)
- 自動(dòng)在Windows中運(yùn)行Python腳本并定時(shí)觸發(fā)功能實(shí)現(xiàn)
- 實(shí)現(xiàn)Windows下設(shè)置定時(shí)任務(wù)來(lái)運(yùn)行python腳本
- 如何給windows設(shè)置定時(shí)任務(wù)并運(yùn)行python腳本
- Python實(shí)現(xiàn)定時(shí)監(jiān)測(cè)網(wǎng)站運(yùn)行狀態(tài)的示例代碼
- python每天定時(shí)運(yùn)行某程序代碼
相關(guān)文章
PyQt5 實(shí)現(xiàn)給無(wú)邊框widget窗口添加背景圖片
這篇文章主要介紹了PyQt5 實(shí)現(xiàn)給無(wú)邊框widget窗口添加背景圖片的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03Python使用min、max函數(shù)查找二維數(shù)據(jù)矩陣中最小、最大值的方法
這篇文章主要介紹了Python使用min、max函數(shù)查找二維數(shù)據(jù)矩陣中最小、最大值的方法,涉及Python矩陣生成、遍歷、查找等相關(guān)操作技巧,需要的朋友可以參考下2018-05-05python中pip安裝庫(kù)時(shí)出現(xiàn)Read?timed?out解決辦法
最近需要使用pip庫(kù),安裝的時(shí)候出現(xiàn)問(wèn)題,本文就詳細(xì)的介紹一下python中pip安裝庫(kù)時(shí)出現(xiàn)Read?timed?out解決辦法,具有一定的參考價(jià)值,感興趣的可以了解一下2022-03-03java關(guān)于string最常出現(xiàn)的面試題整理
在本篇文章里小編給大家整理的是一篇關(guān)于java關(guān)于string最常出現(xiàn)的面試題整理內(nèi)容,有興趣的朋友們可以參考下。2021-01-01由Python運(yùn)算π的值深入Python中科學(xué)計(jì)算的實(shí)現(xiàn)
這篇文章主要介紹了由Python運(yùn)算π的值深入Python中科學(xué)計(jì)算的實(shí)現(xiàn),由簡(jiǎn)單的計(jì)算發(fā)散出各種算法的講解,需要的朋友可以參考下2015-04-04Python 實(shí)現(xiàn)一行輸入多個(gè)數(shù)字(用空格隔開(kāi))
這篇文章主要介紹了Python 實(shí)現(xiàn)一行輸入多個(gè)數(shù)字,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04