如何使用 Python 設定檔案的建立和修改日期/時間?


Python 中檔案的建立和修改日期時間被定義為與檔案建立事件和上次修改事件關聯的時間戳。

建立時間:它被定義為檔案最初建立或新增到檔案系統的時間戳。

修改時間:它被定義為檔案內容上次修改或更新的時間戳。

這些日期時間可以提供很多資訊,例如檔案的年齡、最近的更改或首次引入的時間。

在 Python 中,您可以使用 os.path.getctime() 和 os.path.getmtime() 等函式獲取檔案的建立和修改日期時間。

透過仔細檢查這些時間戳,您可以跟蹤檔案更改、管理版本或根據這些修改執行的操作。

要使用 Python 設定檔案的建立和修改日期時間,您可以使用 os 模組及其 os.utime() 函式。os.utime() 函式使您可以修改檔案的訪問時間和修改時間。

使用 os 模組

示例

程式碼的分步解釋

  • 匯入必要的模組,如用於處理作業系統的 os 模組,以及用於處理時間相關函式的 time 模組。

  • 指定要設定建立和修改日期時間的檔案的路徑。

  • 使用 time.time() 獲取當前時間。此函式返回自紀元(1970 年 1 月 1 日)以來的當前時間(以秒為單位)。

  • 設定所需的建立和修改日期時間;為此,從當前時間減去一定的時間量。在上面的示例中,從建立時間減去 1 小時,從修改時間減去 30 分鐘。

  • 使用 os 模組的 os.utime() 函式設定檔案的建立和修改日期時間。檔案路徑作為第一個引數傳遞,包含建立時間和修改時間的元組作為第二個引數傳遞。

  • 執行此程式碼時,您將能夠將指定檔案的建立和修改日期時間設定為所需的值。

  • 需要注意的是,設定檔案的建立和修改日期時間可能需要檔案系統上的適當許可權。請確保您具有修改檔案日期時間資訊的必要許可權。

import os
import time

# Specify the file path
file_path = 'path/to/file.txt'

# Get the current time
current_time = time.time()

# Set the desired creation and modification datetime
creation_time = current_time - 3600  # Subtract 1 hour 
(in seconds)
modification_time = current_time - 1800  # Subtract 30 
minutes (in seconds)

# Set the creation and modification datetime of the file
os.utime(file_path, (creation_time, modification_time))

使用 shutil 模組

設定檔案建立和修改日期時間的另一種方法是使用 shutil 模組;它具有高階檔案操作來幫助我們完成任務。這是一個示例

示例

步驟如下

  • 要匯入的必需模組:shutil 模組用於高階檔案操作,datetime 模組用於處理日期和時間物件。

  • 指定要修改的檔案的路徑。

  • 建立所需建立和修改日期時間的 datetime 物件。在此示例中,我們將建立時間設定為 2022 年 1 月 1 日上午 10:30,修改時間設定為 2022 年 1 月 1 日上午 11:00。

  • 使用 timestamp() 方法將 datetime 物件轉換為時間戳。

  • 使用 shutil.cmp() 函式設定檔案的建立和修改日期時間。檔案路徑作為第一個引數傳遞,包含建立時間和修改時間的元組作為第二個引數傳遞。

  • 透過執行此程式碼,您可以將指定檔案的建立和修改日期時間設定為所需的值。

import shutil
import datetime

# Specify the file path
file_path = 'path/to/file.txt'

# Get the desired creation and modification datetime
creation_datetime = datetime.datetime(2022, 1, 1, 10, 30)  
# January 1, 2022, 10:30 AM
modification_datetime = datetime.datetime(2022, 1, 1, 11, 0)  
# January 1, 2022, 11:00 AM

# Convert the datetime objects to timestamps
creation_time = creation_datetime.timestamp()
modification_time = modification_datetime.timestamp()

# Set the creation and modification datetime of the file
shutil.cmp(file_path, (creation_time, modification_time))

使用 pathlib 模組

匯入 pathlib 模組。在此示例中,我們使用 pathlib 設定檔案的建立和修改日期時間

示例

  • 匯入必要的模組:pathlib 模組用於處理檔案路徑,datetime 模組用於操作日期和時間。

  • 使用 pathlib.Path 指定要修改的檔案的路徑。

  • 建立所需建立和修改日期時間的 datetime 物件。

  • 使用 Path 物件的 touch() 方法建立檔案(如果不存在)。

  • 訪問檔案的 stat 物件的 st_ctime(建立時間)和 st_mtime(修改時間)屬性,並將它們設定為所需 datetime 值的時間戳。

  • 透過執行此程式碼,您將能夠使用 pathlib 設定指定檔案的建立和修改日期時間。

import pathlib
import datetime

# Specify the file path
file_path = pathlib.Path('path/to/file.txt')

# Get the desired creation and modification datetime
creation_datetime = datetime.datetime(2022, 1, 1, 10, 30)  
# January 1, 2022, 10:30 AM
modification_datetime = datetime.datetime(2022, 1, 1, 11, 0)  
# January 1, 2022, 11:00 AM

# Set the creation and modification datetime of the file
file_path.touch()
file_path.stat().st_ctime = creation_datetime.timestamp()
file_path.stat().st_mtime = modification_datetime.timestamp()

簡而言之,我們探討了使用 Python 設定檔案建立和修改日期時間的多種方法。無論您選擇使用 os 模組、shutil 還是 pathlib,您現在都掌握了在 Python 程式中操作檔案日期時間資訊所需的知識。您可以隨時選擇最適合您需求的方法,並輕鬆開始管理檔案日期時間。

更新於: 2023-07-25

9K+ 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.