我的python程序中存在一些問題。使用Python將最早的文件複製到另一個目錄
我想打開一個目錄,選擇最舊的文件,然後將該文件複製到另一個目錄。
我讀過「shutil」被提及的文件,但我不知道如何選擇最老的文件。
有人可以幫我解決這個問題嗎?
我的python程序中存在一些問題。使用Python將最早的文件複製到另一個目錄
我想打開一個目錄,選擇最舊的文件,然後將該文件複製到另一個目錄。
我讀過「shutil」被提及的文件,但我不知道如何選擇最老的文件。
有人可以幫我解決這個問題嗎?
以下示例比較修改日期,但您當然可以通過將gt
的定義更改爲os.path.getctime
或os.path.getatime
來更改其他文件相關時間。
import os, shutil
fromdir = '/home/mac/Desktop'
todir = '/home/mac/Desktop/tmp'
gt = os.path.getmtime #change if you want something else
oldest = min([(f, gt(f)) for f in os.listdir(fromdir)])[0]
shutil.move(fromdir + '/' + oldest, todir)
您可以使用os.path.getatime
獲取文件(或目錄)的上次訪問時間,或者使用ps.path.getmtime
獲取上次修改的時間。
您是指'getmtime'的修改時間? –
@Eli:是的 - 確定,謝謝。 –
這不適合我。它似乎返回最小文件名(即按字母順序返回最接近的'a')。
顛倒元組中的文件信息和文件名(gt(f),f)爲我修復了它。因此,我必須提高返回結果的索引([1])。
oldest = min([ ( gt(f),f ) for f in os.listdir(fromdir)])[1]
在UNIX上,ctime是上次文件狀態更改的時間,僅在Windows上創建時間。 – cdarke
感謝您的回覆。 –