python-對目錄下的文件按時間排序


sorted 語法:

sorted(iterable, key=None, reverse=False)

參數說明:

  • iterable -- 可迭代對象。
  • key -- 主要是用來進行比較的元素,只有一個參數,具體的函數的參數就是取自於可迭代對象中,指定可迭代對象中的一個元素來進行排序。
  • reverse -- 排序規則,reverse = True 降序 , reverse = False 升序(默認)

 

1.按照時間來排序

def get_file_list(file_path):
    dir_list = os.listdir(file_path)
    if not dir_list:
        return
    else:
        # 注意,這里使用lambda表達式,將文件按照最后修改時間順序升序排列
        # os.path.getmtime() 函數是獲取文件最后修改時間
        # os.path.getctime() 函數是獲取文件最后創建時間
        dir_list = sorted(dir_list,key=lambda x: os.path.getmtime(os.path.join(file_path, x)))
        # print(dir_list)
        return dir_list

2.獲取最后修改時間的文件路徑

import os

url='D:\PycharmProjects\Ambulance_Api\logs'
lists=os.listdir(url)
print(lists)
lists.sort(key=lambda fn: os.path.getmtime(url+'\\'+fn))
filepath=os.path.join(url,lists[-1])
print(filepath)

3.按照文件名字來排序

1)用庫函數sorted()對字符串排序,它的對象是字符
2)用函數sort()對數字排序,它的對象是數字,如果讀取文件的話,需要進行處理(把文件后綴名‘屏蔽’)

 

import os

img_path ='./img/'
img_list =sorted(os.listdir(img_path))    #文件名按字母排序
img_nums =len(img_list)
for i in range(img_nums):
img_name = img_path + img_list[i]
print(img_name)

注意:順便提下,sort函數中用到了匿名函數(key = lambda x:int(x[:-4])),其作用是將后綴名'.jpg'“屏蔽”(因為‘.jpg’是4個字符,所以[:-4]的含義是從文件名開始到倒數第四個字符為止)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM