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