Python 的 time 模組徹底解說|計算處理時間與新增日誌時間戳記的方法

1. 什麼是 Python 的 time 模組?

1.1 time 模組的概要

Python 的 time 模組是用於在程式中處理時間和日期的標準函式庫之一。
這個模組根據系統時鐘計算自紀元時間(1970年1月1日 00:00:00 UTC)以來的秒數,因此常用於為日誌文件添加時間戳記或測量程式執行的效能。

time 模組的主要優勢是簡單易用。它不需要複雜的設定,適合用於基本的時間管理和測量。

1.2 主要功能介紹

time 模組提供了多種與時間相關的函數。以下是幾個常用的例子:

  • time.time(): 返回自紀元時間以來的秒數(浮點數)。
  • time.sleep(secs): 暫停程式執行指定的秒數。適合暫時中斷處理程序。
  • time.ctime(): 將時間戳記轉換成人類可讀的格式。

透過這些函數,可以從基本的時間操作到進階的測量需求靈活應用。

年収訴求

2. 如何獲取當前時間

2.1 使用 time.time() 獲取當前時間

time.time() 函數返回自紀元時間以來的秒數。這是一種最基本的獲取當前時間的方法,以下為範例:

import time
current_time = time.time()
print(current_time)

上述程式碼會顯示當前的紀元時間(以浮點數表示的秒數)。雖然紀元時間在內部計算上非常有用,但對人類來說不夠直觀。因此,通常會使用下一節介紹的 strftime() 進行格式化。

2.2 使用 strftime() 轉換為人類可讀格式

time.strftime() 函數可將紀元時間轉換為年月日和時間的格式。這對於日誌記錄或時間顯示特別實用。以下程式碼將當前時間顯示為「年-月-日 時:分:秒」格式:

import time
formatted_time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
print(formatted_time)

在此範例中,透過 time.localtime() 將當前時間戳記轉換為本地時間,然後使用 strftime() 進行格式化。%Y 表示4位數的年份,%m 表示月份,%d 表示日期。這樣可以輕鬆將時間數據轉換為人類可讀的格式。

3. 如何測量程式執行時間

3.1 使用 time.time() 進行基本的執行時間測量

測量執行時間最簡單的方法是使用 time.time()。透過取得開始和結束時間的差異,可以計算程式執行所花費的時間:

import time
start_time = time.time()

# 範例:迴圈處理
for i in range(1000000):
    pass

end_time = time.time()
print(f"執行時間: {end_time - start_time} 秒")

這個範例測量了一個迴圈處理所需的時間。time.time() 提供秒級的精度,適合簡單的執行時間測量需求。

4. 日期操作:與 datetime 模組的比較

4.1 使用 datetime.now() 獲取當前時間

Python 的 datetime 模組與 time 模組同樣實用,特別適合處理日期相關操作或計算時間差。

from datetime import datetime
now = datetime.now()
print(now)

這段程式碼獲取當前日期和時間,並以 datetime 物件的形式顯示。datetime 模組還可以輕鬆處理時間計算和時區管理,非常適合需要更複雜日期操作的情況。

4.2 time 模組與 datetime 模組的使用區分

time 模組適合簡單的時間測量和管理需求,尤其適用於高精度的時間計測。然而,處理日期相關操作時,datetime 模組更加方便。
例如,在需要處理特定日期或執行時間計算的應用程式中,使用 datetime 模組會更有效率。

侍エンジニア塾

5. 實用範例:time 模組的應用方法

5.1 如何在日誌中新增時間戳記

在程式中追蹤事件時,通常會將時間戳記記錄到日誌文件中。透過 time.ctime(),可以輕鬆取得當前時間並新增到日誌中。

import time
log_entry = f"{time.ctime()} - 錯誤訊息"
print(log_entry)

透過上述程式碼,可以將現在時間以人類可讀的格式記錄到日誌中。

5.2 優化程式效能

在效能優化中,透過時間測量來識別瓶頸是非常有效的方法。利用 time 模組或 timeit 模組,可以測量整個程式或特定函數的執行時間,進而進行優化,提升程式效能。

侍エンジニア塾

6. 總結

Python 的 time 模組簡單易用,非常適合處理基本的時間管理操作。在測量執行時間或為日誌文件新增時間戳記等場景中,它提供了靈活且強大的功能。此外,透過 perf_counter()timeit 等工具,還能進行高精度和性能優化的測量。

在需要更複雜的日期計算或時區管理時,建議搭配 datetime 模組使用,以實現更強大的功能。充分理解並靈活運用這些模組,可以顯著提升 Python 程式的效率和實用性。

広告
年収訴求