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:PycharmProjectsAmbulance_Apilogs'
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]的含义是从文件名开始到倒数第四个字符为止)

原文地址:https://www.cnblogs.com/lnd-blog/p/14755611.html