需求簡述:取得A目錄最新檔案修改日期,將B目錄中大於等於此修改日期的檔案複製到C目錄中
詳細描述:撰寫 Python,先判斷 "C:\Users\user\Desktop\TEST\A" 最新一筆檔案的修改日期,然後從 "C:\Users\user\Desktop\TEST\B" 找到該修改日期之後的檔案,最後將這些檔案複製到 "C:\Users\user\Desktop\TEST\C"。
最終程式執行狀況如下:我先在 A 目錄新增 1.txt,接著在 B 目錄新增 A.txt,回到 A 目錄新增 2.txt,再到 B 目錄新增 B.txt,依照需求,應該複製到 C 目錄的只有 B.txt,因此我點兩下執行 run.bat,裡面只有 python run.py
指令以執行 run.py(電腦要先安裝 Python),最終 C 目錄得到複製過來的 B.txt。
📄 run.py
import os
import shutil
# 取得最新一筆檔案的修改時間
latest_time = 0
for file_name in os.listdir("C:\\Users\\user\\Desktop\\TEST\\A"):
file_path = os.path.join("C:\\Users\\user\\Desktop\\TEST\\A", file_name)
if os.path.isfile(file_path):
file_time = os.path.getmtime(file_path)
if file_time > latest_time:
latest_time = file_time
# 複製符合條件的檔案到目的地
for file_name in os.listdir("C:\\Users\\user\\Desktop\\TEST\\B"):
file_path = os.path.join("C:\\Users\\user\\Desktop\\TEST\\B", file_name)
if os.path.isfile(file_path):
file_time = os.path.getmtime(file_path)
if file_time >= latest_time:
shutil.copy2(file_path, "C:\\Users\\user\\Desktop\\TEST\\C")
解釋:
1. 使用 os.listdir 函式列出指定目錄下的所有檔案和子目錄。
2. 使用 os.path.join 函式將目錄名稱和檔案名稱組合成完整路徑。
3. 使用 os.path.isfile 函式判斷是否為檔案。
4. 使用 os.path.getmtime 函式取得檔案的修改時間。
5. 找到最新的修改時間後,使用 shutil.copy2 函式將檔案複製到目標目錄。
※ 注意:在 Windows 系統中,路徑分隔符號要使用雙反斜線 \\。如果使用單斜線 /,需要在字串前加上 r,表示使用原始字串。
GitHub:https://github.com/qwe987299/GET_A_LATEST_AND_COPY_B_TO_C_PROJECT
▲ 示意圖。
留言區 / Comments
萌芽論壇