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