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

  • 相关阅读:
    java封装
    本人的其他博客
    codeforces 1000C
    1005E1 Median on Segments (Permutations Edition) 【思维+无序数组求中位数】
    1009E Intercity Travelling 【数学期望】
    codeforces 1009D Relatively Prime Graph【欧拉函数】
    1077E Thematic Contests 【二分答案】
    codeforces 1077D Cutting Out 【二分】
    【非原创】ZOJ
    数字千万别用puts!
  • 原文地址:https://www.cnblogs.com/lnd-blog/p/14755611.html
Copyright © 2020-2023  润新知