1. 格式化日期和時間
歡迎來到我們關於 Python 日期和時間處理的第三堂課!今天我們要討論一個超重要的主題,它不僅會讓你的報告和日誌更有功能性,還會更美觀——這就是日期和時間的格式化。讓我們讓你的報告變得既漂亮又方便,畢竟沒有人喜歡亂七八糟的代碼!
你是否想過,為什麼在某些報告中,日期看起來這麼奇怪?這就像要在標準之間選擇:選擇 ISO 8601 來讓同事印象深刻,還是保留習慣的格式?那麼,來看看如何通過 Python 整潔地格式化日期和時間,讓它看起來像你是一位完全知道自己在做什麼的程式設計師。
在 Python 的世界裡,有一個很棒的方法 strftime()
,它允許你將 datetime
對象轉換成你希望的字符串格式。讓我們從基本語法開始,然後看看一些格式化的例子。
from datetime import datetime
# 獲取當前日期和時間
now = datetime.now()
# 將當前日期和時間格式化為可讀字符串
formatted_date = now.strftime("%Y-%m-%d %H:%M:%S")
print("當前日期和時間:", formatted_date)
常用的格式化代碼:
%Y
: 完整年份(例如,2023)%m
: 月份以數字表示(例如,01 表示一月)%d
: 一個月中的日期(例如,01 表示第一天)%H
: 24小時制的小時數%M
: 分鐘%S
: 秒數
現在,我們可以將日期和時間轉換過來,那麼讓我們來選擇適合我們應用的眾多格式之一。事實上,你知道嗎?在程式設計的世界裡,如果你不知道日期是以哪種格式呈現的,你可以為此寫一本書,然後才找到合適的選項?
用於日誌和報告的格式化範例
格式化不僅僅是關乎美觀。它還涉及為他人提供易讀的信息。格式化的應用案例多種多樣:
- 文件日誌:
如果你的腳本將事件寫入日誌文件,通常需要記錄事件的發生時間。這不僅能幫助追踪腳本的工作進程,還能簡化調試。
Pythonlog_time = now.strftime("%Y-%m-%d %H:%M:%S") log_entry = f"[{log_time}] 事件:腳本開始執行。" print(log_entry)
- 報告和文件:
如果你生成 PDF 或 Excel 報告,在標題或頁腳中使用格式化的日期可能是一個很大的好處。
Pythonreport_date = now.strftime("%d.%m.%Y") print(f"報告生成日期為: {report_date}")
格式化的靈活性
你可以組合格式化代碼,創建幾乎任何你需要的格式。
假設你需要像舊電影一樣的格式,以讓你的老闆印象深刻:
vintage_format = now.strftime("%A, %B %d, %Y at %I:%M %p")
print("復古日期:", vintage_format)
這裡 %A
, %B
, %I
, %p
代碼分別用於輸出完整的星期名稱、完整的月份名稱、12小時制的時間和 AM/PM 標識。有時候,帶點復古風格能讓現代的報告更有趣!
常見錯誤及如何避免
當談到格式化時,一個常見的錯誤是錯誤使用格式代碼。例如,將小寫的 m
替換成大寫的 M
在輸出分鐘或月份時可能會導致搞笑的結果。這種時候,如果格式化代碼不偶爾起作用,基本的格式化可能會變成一場錯誤喜劇。
如果你對語法有疑問,請始終參考 Python 的官方文檔 strftime() 和 strptime()。
格式化的實際應用
假設你寫了一個每小時從網站上收集統計數據的腳本。所有的數據都保存在 CSV 裡,每個文件都以收集數據運行時的日期和時間命名。以下是如何實現這一功能的範例:
import os
def save_data(data):
file_time = datetime.now().strftime("%Y%m%d_%H%M%S")
file_name = f"data_{file_time}.csv"
# 在這裡分離你的邏輯,專注數據的保存
print(f"數據已保存至文件: {file_name}")
# 模擬數據和函數調用
dummy_data = "各種有用的信息"
save_data(dummy_data)
為文件名稱附帶日期,不僅簡化了數據的組織,還方便需要時的查找。
日期和時間的格式化是一項技能,它為自動化世界打開了許多大門。你的腳本會更加精確,報告更直觀,也是一個讓人賞心悅目的好理由。誰能想到,僅僅格式化就能帶來這麼多快樂?
在此,我們完成本次講座。不要忘記練習不同的格式,創造你自己的獨特報告和日誌。我們在下一次課程再見,屆時我們將研究時間間隔,以及它們如何幫助用基於時間的方式自動化任務。
GO TO FULL VERSION