2016-08-05 25 views
3

我是一名初學者,並試圖編寫代碼以根據其修改日期以升序顯示文件夾中的文件。我試圖根據修改日期對文件夾中的所有文件列表進行排序

我想下面的代碼,但我想知道我可以繼續排序。

import os 

file_path = "c:\\albert\\david" 

file1 = os.listdir(file_path) 

file2 = [os.path.join(file_path, f)for f in file1] 

print(file2) 

i=0 

for f in file2: 

while (i<11): 

    file3=[(file2[i], os.path.getmtime(file2[i]), s.path.getsize(file2[i]))] 

    i = i+1 

    print(file3) 

我需要幫助,現在應該如何進行排序和打印。

+0

你有一個'for'和'while'在同一時間。我懷疑你想用'for'循環迭代,但你也在使用索引。在這種情況下,'f'與'file2 [i]'相同。你不需要索引。還要檢查'sorted'函數的文檔,特別是'key'參數。 – chapelo

回答

1

更改一個類似於你print(file2)行後的行,對於一個列表理解你用來形成file2

file3 = [(f, os.path.getmtime(f), s.path.getsize(f)) for f in file2] 

現在,你只需要將它排序的元組的第二個元素(在修改時間),按升序排列(默認)。

from operator import itemgetter 
print(sorted(file3, key=itemgetter(1))) 
+0

謝謝Chapelo..it工作..非常感謝 – shyamksonata

相關問題