前陣子寫的工作流程自動化軟體中有一個備忘錄功能, 可以在操作過程中將系統自動產生的作業指令紀錄下來成為備忘錄, 以後遇到類似任務就可以快速找到參考訊息, 但備忘錄檔案我只是用 os.listdir() 傳回的串列製作成樹狀結構, 預設是以檔名為排列順序, 我希望能以日期時間來倒排, 即最新的排最上面, 這要怎麼做? 我找到下面這篇 :
原來可以利用 os.path.getmtiom() 或 os.path.getctiom() 來當排序的 key, 前者是依據最後修改時間, 後者則是依據文件建立時間來排序, 改寫如下 :
import os
def get_file_list(dir_path):
flist=os.listdir(dir_path)
if not flist:
return
else:
flist=sorted(flist, key=lambda x: os.path.getmtime(os.path.join(dir_path, x)), reverse=True)
return file_list
此函式參數 dir_path 為資料夾路徑字串, 例如 'memo' 表示程式路徑下的子目錄 memo. 而傳入 sorted() 的第二參數 reverse=True 表示要倒序排序 (最近者在前), 測試結果 OK :
>>> import os
>>> get_file_list('memo')
沒有留言 :
張貼留言