python time的使用方法詳細解析
Python 的 time 模塊是處理時間相關(guān)任務(wù)的核心內(nèi)置庫,它提供了從獲取時間戳、格式化時間到程序延時和性能測量等一系列功能。以下是該模塊主要功能與使用方法的詳細解析。
一、 模塊導(dǎo)入與基礎(chǔ)時間獲取
使用 time 模塊的第一步是導(dǎo)入它。
import time
導(dǎo)入后,最基礎(chǔ)的功能是獲取當(dāng)前時間,通常以時間戳(自1970年1月1日UTC以來的秒數(shù),浮點數(shù)形式)表示。
current_timestamp = time.time()
print(f"當(dāng)前時間戳: {current_timestamp}")時間戳可讀性差,time.ctime() 能將其轉(zhuǎn)換為本地時間的字符串。
readable_time = time.ctime()
print(f"可讀時間: {readable_time}")二、 時間格式的轉(zhuǎn)換與解析
time 模塊在時間戳、結(jié)構(gòu)化時間對象和字符串之間提供了靈活的轉(zhuǎn)換工具。
- 獲取結(jié)構(gòu)化時間
time.localtime([secs]): 將時間戳轉(zhuǎn)換為本地時間的struct_time對象。若不提供參數(shù),則使用當(dāng)前時間。time.gmtime([secs]): 將時間戳轉(zhuǎn)換為UTC時間的struct_time對象。
- 時間格式化與解析
local_time = time.localtime()
formatted_time = time.strftime("%Y-%m-%d %H:%M:%S", local_time)
print(f"格式化時間: {formatted_time}") # 輸出如:2025-12-11 10:30:00time_str = "2025-12-11 10:30:00" parsed_time = time.strptime(time_str, "%Y-%m-%d %H:%M:%S") print(parsed_time)
- 格式化 (
time.strftime()):將struct_time對象按指定格式轉(zhuǎn)換為字符串。這是生成可讀日期時間字符串的常用方法。 - 解析 (
time.strptime()):將格式匹配的字符串解析為struct_time對象。 - 時間對象與時間戳互轉(zhuǎn)
time.mktime(t): 將本地時間的struct_time對象轉(zhuǎn)換回時間戳。time.asctime([t]): 將struct_time對象轉(zhuǎn)換為一個可讀的字符串,格式類似于ctime()。
三、 程序控制與性能測量
- 延時執(zhí)行
time.sleep(seconds)函數(shù)使當(dāng)前線程暫停執(zhí)行指定的秒數(shù)(可為浮點數(shù)),常用于控制節(jié)奏或模擬等待。這在網(wǎng)絡(luò)爬蟲中用于避免請求過快,或在自動化測試中模擬用戶操作間隔。
print("開始")
time.sleep(2.5) # 暫停2.5秒
print("結(jié)束")- 測量時間間隔與性能
- 簡單測量:使用
time.time()記錄起止時間戳并計算差值,適用于測量代碼段執(zhí)行時間。
- 簡單測量:使用
- 高精度測量:
time.perf_counter(): 返回一個具有最高可用精度的性能計數(shù)器的值,用于測量極短時間間隔。time.process_time(): 返回當(dāng)前進程的系統(tǒng)和用戶CPU時間總和,用于測量代碼實際消耗的CPU時間。
- 單調(diào)時鐘:
time.monotonic()返回一個單調(diào)遞增的時鐘值,不受系統(tǒng)時間調(diào)整影響,適用于測量時間間隔。 - 納秒級精度:
time.time_ns()返回納秒級精度的時間戳。
四、 實際應(yīng)用場景
- 創(chuàng)建定時任務(wù):結(jié)合循環(huán)與
time.sleep(),可以實現(xiàn)簡單的定時執(zhí)行功能,例如定期備份文件或檢查狀態(tài)。
def scheduled_task():
print(f"任務(wù)執(zhí)行于 {time.strftime('%H:%M:%S')}")
while True:
scheduled_task()
time.sleep(5) # 每5秒執(zhí)行一次- 實現(xiàn)倒計時:利用
time.sleep()和循環(huán)可以創(chuàng)建命令行倒計時。 - 計算函數(shù)執(zhí)行時間:使用裝飾器模式可以優(yōu)雅地為函數(shù)添加計時功能,便于性能分析和調(diào)試。
import time
def timer_decorator(func):
def wrapper(*args, **kwargs):
start = time.perf_counter()
result = func(*args, **kwargs)
end = time.perf_counter()
print(f"{func.__name__} 執(zhí)行耗時: {end - start:.6f} 秒")
return result
return wrapper
@timer_decorator
def my_function():
time.sleep(1)
my_function()- 多線程中的時間控制:在多線程編程中,
time.sleep()常用于控制不同線程的執(zhí)行節(jié)奏或間隔。
五、 注意事項與與其他模塊的協(xié)作
- 時區(qū)處理:
localtime()和gmtime()分別提供本地和UTC時間,在處理跨時區(qū)應(yīng)用時需注意區(qū)分。 - 格式匹配:使用
strptime()解析字符串時,格式字符串必須與時間字符串嚴格匹配,否則會引發(fā)錯誤。 - 模塊協(xié)作:對于更復(fù)雜的日期時間操作(如日期加減、比較),
datetime模塊功能更強大。對于需要事件調(diào)度的場景,可以參考sched模塊。calendar模塊則專注于日歷相關(guān)的操作。
總結(jié)
Python 的 time 模塊是一個功能全面且直接的工具集,涵蓋了從基礎(chǔ)時間獲取、格式化、程序延時到高精度性能測量的核心需求。掌握其常用函數(shù)如 time()、sleep()、strftime()/strptime()、localtime()/gmtime() 以及 perf_counter(),能夠高效地解決開發(fā)中大多數(shù)與時間相關(guān)的編程任務(wù)。對于更復(fù)雜的日期時間處理,可結(jié)合 datetime 等模塊共同使用。
到此這篇關(guān)于python time的使用的文章就介紹到這了,更多相關(guān)python time使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python?matplotlib實戰(zhàn)之箱型圖繪制
箱型圖(Box?Plot),也稱為盒須圖或盒式圖,是一種用作顯示一組數(shù)據(jù)分布情況的統(tǒng)計圖,因型狀如箱子而得名,本文主要為大家介紹了如何使用Matplotlib繪制箱型圖,需要的小伙伴可以參考下2023-08-08
使用Pandas實現(xiàn)Excel中的數(shù)據(jù)透視表的項目實踐
數(shù)據(jù)透視表是一種非常強大的工具,它可以幫助我們快速匯總、分析和可視化大量數(shù)據(jù),本文主要介紹了使用Pandas實現(xiàn)Excel中的數(shù)據(jù)透視表的項目實踐,感興趣的可以了解一下2025-05-05
python內(nèi)置模塊pathlib.Path類操作目錄和文件的使用
本文主要介紹了python內(nèi)置模塊pathlib.Path類操作目錄和文件的使用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-05-05
Python分支結(jié)構(gòu)(switch)操作簡介
這篇文章主要介紹了Python分支結(jié)構(gòu)(switch)操作簡介,具有一定借鑒價值,需要的朋友可以參考下2018-01-01
使用BeautifulSoup爬蟲程序獲取百度搜索結(jié)果的標題和url示例
這篇文章主要介紹了使用BeautifulSoup編寫了一段爬蟲程序獲取百度搜索結(jié)果的標題和url的示例,大家參考使用吧2014-01-01
Python中自定義函方法與參數(shù)具有默認值的函數(shù)
這篇文章主要介紹了Python中自定義函方法與參數(shù)具有默認值的函數(shù),在Python編程中,可以使用已經(jīng)定義好的函數(shù),也可以自定義函數(shù)實現(xiàn)某些特殊的功能,更多相關(guān)資料,請需要的人參考下面文章內(nèi)容2022-02-02
pytorch:model.train和model.eval用法及區(qū)別詳解
今天小編就為大家分享一篇pytorch:model.train和model.eval用法及區(qū)別詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02

