Python使用time模塊實(shí)現(xiàn)指定時(shí)間觸發(fā)器示例
本文實(shí)例講述了Python使用time模塊實(shí)現(xiàn)指定時(shí)間觸發(fā)器。分享給大家供大家參考,具體如下:
其實(shí)很簡(jiǎn)單,指定某個(gè)時(shí)間讓腳本處理一個(gè)事件,比如說(shuō)一個(gè)get請(qǐng)求~
任何語(yǔ)言都會(huì)有關(guān)于時(shí)間的各種方法,Python也不例外。
help(time)之后可以知道time有2種時(shí)間表示形式:
1、時(shí)間戳表示法,即以整型或浮點(diǎn)型表示的是一個(gè)以秒為單位的時(shí)間間隔。這個(gè)時(shí)間的基礎(chǔ)值是從1970年的1月1號(hào)零點(diǎn)開始算起。
2、元組格式表示法,即一種python的數(shù)據(jù)結(jié)構(gòu)表示。這個(gè)元組有9個(gè)整型內(nèi)容。分別表示不同的時(shí)間含義。
year (four digits, e.g. 1998)
month (1-12)
day (1-31)
hours (0-23)
minutes (0-59)
seconds (0-59)
weekday (0-6, Monday is 0)
Julian day (day in the year, 1-366)
DST (Daylight Savings Time) flag (-1, 0 or 1) ##夏令時(shí)格式,0:表示正常格式,1:表示為夏令時(shí)格式,-1:表示根據(jù)當(dāng)前的日期時(shí)間格式來(lái)判定
time()
或者datetime.now()
-- 返回當(dāng)前時(shí)間戳,浮點(diǎn)數(shù)形式。不接受參數(shù)
clock()
-- 返回當(dāng)前程序的cpu執(zhí)行時(shí)間。unix系統(tǒng)始終返回全部運(yùn)行時(shí)間;而windows從第二次開始都是以第一次調(diào)用此函數(shù)時(shí)的時(shí)間戳作為基準(zhǔn),而不是程序開始時(shí)間為基準(zhǔn)。不接受參數(shù)。
sleep()
-- 延遲一個(gè)時(shí)間段,接受整型、浮點(diǎn)型。
gmtime()
-- 將時(shí)間戳轉(zhuǎn)換為UTC時(shí)間元組格式。接受一個(gè)浮點(diǎn)型時(shí)間戳參數(shù),其默認(rèn)值為當(dāng)前時(shí)間戳。
localtime()
-- 將時(shí)間戳轉(zhuǎn)換為本地時(shí)間元組格式。接受一個(gè)浮點(diǎn)型時(shí)間戳參數(shù),其默認(rèn)值為當(dāng)前時(shí)間戳。
asctime()
-- 將時(shí)間元組格式轉(zhuǎn)換為字符串形式。接受一個(gè)時(shí)間元組,其默認(rèn)值為localtime()返回值
ctime()
-- 將時(shí)間戳轉(zhuǎn)換為字符串。接受一個(gè)時(shí)間戳,其默認(rèn)值為當(dāng)前時(shí)間戳。等價(jià)于asctime(localtime(seconds))
mktime()
-- 將本地時(shí)間元組轉(zhuǎn)換為時(shí)間戳。接受一個(gè)時(shí)間元組,必選。
strftime()
-- 將時(shí)間元組以指定的格式轉(zhuǎn)換為字符串形式。接受字符串格式化串、時(shí)間元組。時(shí)間元組為可選,默認(rèn)為localtime()
strptime()
-- 將指定格式的時(shí)間字符串解析為時(shí)間元組,strftime()的逆向過(guò)程。接受字符串,時(shí)間格式2個(gè)參數(shù),都是必選。
并且其類型還可以做減法操作 然后用total_seconds()可以將某個(gè)時(shí)間差值轉(zhuǎn)換為s,具體看后續(xù)代碼部分
示例代碼:
import httplib import time def doFirst(): from datetime import datetime, timedelta curTime = datetime.now() #print curTime desTime = curTime.replace(hour=3, minute=0, second=0, microsecond=0) #print desTime delta = desTime-curTime #print delta skipSeconds = int(delta.total_seconds()) #print skipSeconds if skipSeconds==0: return True else: if skipSeconds<0: skipSeconds+=24*60*60 print "Must sleep %d seconds" % skipSeconds return False #也可以采取獲取當(dāng)前時(shí)間差值然后自己計(jì)數(shù),不過(guò)考慮誤差問(wèn)題,就不采取了 def getTime(): from datetime import datetime, timedelta curTime = datetime.now() #print curTime desTime = curTime.replace(hour=3, minute=0, second=0, microsecond=0) #print desTime delta = desTime-curTime #print delta skipSeconds = int(delta.total_seconds()) if skipSeconds<0: skipSeconds+=24*60*60 print skipSeconds return skipSeconds def gethttp(): url = "URL" conn = httplib.HTTPConnection("IP") conn.request(method="GET",url=url) response = conn.getresponse() res= response.read() print res #getTime() while True: if doFirst(): gethttp() time.sleep(24*59*60) time.sleep(1) s.close()
注:時(shí)間字符串支持的格式符號(hào):
格式 含義備注
%a 本地(locale)簡(jiǎn)化星期名稱
%A 本地完整星期名稱
%b 本地簡(jiǎn)化月份名稱
%B 本地完整月份名稱
%c 本地相應(yīng)的日期和時(shí)間表示
%d 一個(gè)月中的第幾天(01 - 31)
%H 一天中的第幾個(gè)小時(shí)(24小時(shí)制,00 - 23)
%I 第幾個(gè)小時(shí)(12小時(shí)制,01 - 12)
%j 一年中的第幾天(001 - 366)
%m 月份(01 - 12)
%M 分鐘數(shù)(00 - 59)
%p 本地am或者pm的相應(yīng)符
%S 秒(01 - 61)
%U 一年中的星期數(shù)。(00 - 53星期天是一個(gè)星期的開始。)第一個(gè)星期天之前的所有天數(shù)都放在第0周。
%w 一個(gè)星期中的第幾天(0 - 6,0是星期天)
%W 和%U基本相同,不同的是%W以星期一為一個(gè)星期的開始。
%x 本地相應(yīng)日期
%X 本地相應(yīng)時(shí)間
%y 去掉世紀(jì)的年份(00 - 99)
%Y 完整的年份
%Z 時(shí)區(qū)的名字(如果不存在為空字符)
%% ‘%'字符
PS:本站還提供了幾款關(guān)于Unix時(shí)間戳轉(zhuǎn)換及日期在線工具,非常實(shí)用,提供給大家參考:
Unix時(shí)間戳(timestamp)轉(zhuǎn)換工具:
http://tools.jb51.net/code/unixtime
在線日期/天數(shù)計(jì)算器:
http://tools.jb51.net/jisuanqi/date_jisuanqi
在線萬(wàn)年歷日歷:
http://tools.jb51.net/bianmin/wannianli
在線陰歷/陽(yáng)歷轉(zhuǎn)換工具:
http://tools.jb51.net/bianmin/yinli2yangli
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python日期與時(shí)間操作技巧總結(jié)》、《Python URL操作技巧總結(jié)》、《Python圖片操作技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python Socket編程技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
Python3 JSON 數(shù)據(jù)解析及日期和時(shí)間小結(jié)
這篇文章主要介紹了Python3 JSON 數(shù)據(jù)解析及日期和時(shí)間,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-02-02Python在Excel中添加數(shù)據(jù)條的代碼詳解
在Excel中添加數(shù)據(jù)條是一種數(shù)據(jù)可視化技巧,它通過(guò)條形圖的形式在單元格內(nèi)直觀展示數(shù)值的大小,尤其適合比較同一列或行中各個(gè)單元格的數(shù)值,本文將介紹如何使用Python在Excel中的指定單元格區(qū)域添加數(shù)據(jù)條,需要的朋友可以參考下2024-10-10總結(jié)分析Python的5個(gè)硬核函數(shù)
今天看到一篇很好的 Python 博文,結(jié)合自己的經(jīng)驗(yàn)總結(jié),分享給大家一篇關(guān)于eval, exec, compile, locals, globals這些函數(shù)的文章2021-11-11教你用python3根據(jù)關(guān)鍵詞爬取百度百科的內(nèi)容
這篇文章介紹的是利用python3根據(jù)關(guān)鍵詞爬取百度百科的內(nèi)容,注意本文用的是python3版本以及根據(jù)關(guān)鍵詞爬取,爬取也只是單純的爬網(wǎng)頁(yè)信息,有需要的可以參考借鑒。2016-08-08django 將自帶的數(shù)據(jù)庫(kù)sqlite3改成mysql實(shí)例
這篇文章主要介紹了django 將自帶的數(shù)據(jù)庫(kù)sqlite3改成mysql實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-07-07用Python登錄Gmail并發(fā)送Gmail郵件的教程
這篇文章主要介紹了用Python登錄Gmail并發(fā)送Gmail郵件的教程,利用了Python的SMTP庫(kù),代碼非常簡(jiǎn)單,需要的朋友可以參考下2015-04-04使用SimpleITK讀取NII格式三維圖像及注意事項(xiàng)說(shuō)明
這篇文章主要介紹了使用SimpleITK讀取NII格式三維圖像及注意事項(xiàng)說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12