python 讀取某一個檔案日期,然後將檔案日期再設定回原本檔案

python 讀取某一個檔案日期,然後將檔案日期再設定回原本檔案
你可以使用 Python 的 osos.utime() 函數來達成這個需求:讀取某個檔案的時間戳記(如建立時間、修改時間),然後再設定回去。這在你需要備份、還原或複製檔案屬性時特別有用。

🧾 範例程式碼:讀取並還原檔案時間戳記

python

import os
import time
# 指定檔案路徑
file_path = 'example.txt'
# 讀取原始的存取時間與修改時間(以秒為單位的 timestamp)
stat_info = os.stat(file_path)
original_atime = stat_info.st_atime  # 最後存取時間
original_mtime = stat_info.st_mtime  # 最後修改時間
# 模擬某些操作,例如修改檔案內容
with open(file_path, 'a') as f:
    f.write('\n# temporary change')
# 還原原本的時間戳記
os.utime(file_path, (original_atime, original_mtime))
print("檔案時間已還原")

🧠 延伸說明

  • os.stat():取得檔案的所有時間資訊(包含建立時間、修改時間、存取時間)。
  • os.utime(path, (atime, mtime)):設定檔案的存取與修改時間。
  • 注意: 在某些作業系統(如 Linux)中,無法直接修改「建立時間(ctime)」,只能修改存取與修改時間。

搭配 shutil.copy2() 使用複製一個檔案並保留原始時間戳記。

複製檔案並保留原始時間戳記 的範例:

🧾 使用 shutil.copy2() 保留檔案日期

python

import shutil
# 指定來源檔案與目標檔案
src_file = 'example.txt'
dst_file = 'backup.txt'
# copy2 會複製檔案內容,同時保留原始的 metadata(存取時間、修改時間)
shutil.copy2(src_file, dst_file)
print("檔案已複製,並保留原始時間戳記")

🔍 差異說明

  • shutil.copy():只複製檔案內容,不保留時間戳記。
  • shutil.copy2():除了內容,還會保留檔案的 metadata(存取時間、修改時間)。
    這樣你就有兩種方式:
  1. 手動讀取與還原os.stat() + os.utime()
  2. 自動複製並保留shutil.copy2()

Also See

7
1:25 AM - December 07, 2025
1:25 AM - December 07, 2025
1:25 AM - December 07, 2025
1:25 AM - December 07, 2025
8:21 PM - December 06, 2025
8:21 PM - December 06, 2025
8:21 PM - December 06, 2025