2011-07-01 82 views
2

我的python程序中存在一些問題。使用Python將最早的文件複製到另一個目錄

我想打開一個目錄,選擇最舊的文件,然後將該文件複製到另一個目錄。

我讀過「shutil」被提及的文件,但我不知道如何選擇最老的文件。

有人可以幫我解決這個問題嗎?

回答

3

以下示例比較修改日期,但您當然可以通過將gt的定義更改爲os.path.getctimeos.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) 
+0

在UNIX上,ctime是上次文件狀態更改的時間,僅在Windows上創建時間。 – cdarke

+0

感謝您的回覆。 –

4

您可以使用os.path.getatime獲取文件(或目錄)的上次訪問時間,或者使用ps.path.getmtime獲取上次修改的時間。

+0

您是指'getmtime'的修改時間? –

+0

@Eli:是的 - 確定,謝謝。 –

1

這不適合我。它似乎返回最小文件名(即按字母順序返回最接近的'a')。

顛倒元組中的文件信息和文件名(gt(f),f)爲我修復了它。因此,我必須提高返回結果的索引([1])。

oldest = min([ ( gt(f),f ) for f in os.listdir(fromdir)])[1] 
相關問題