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]的含義是從文件名開始到倒數第四個字符為止)
