• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Python 如何获取目录下的文件列表,并自然排序

    在实际的算法与程序开发中,经常需要面对的场景就是对同一目录内的文件进行批量操作。

    并且很多时候目录中的文件明明是有规律的,同时希望程序在进行处理时也是按照一定的顺序进行。

    方法 1

    >>> import os
    >>> fileList = os.listdir('TestDir')
    >>> fileList
    ['test1.txt', 'test10.txt', 'test11.txt', 'test2.txt', 'test23.txt', 'test28.txt']
    >>> fileList.sort(key= lambda x:int(x[4:-4]))
    >>> fileList
    ['test1.txt', 'test2.txt', 'test10.txt', 'test11.txt', 'test23.txt', 'test28.txt']
    >>>

    方法 2

    >>> import os
    >>> import natsort
    >>> fileList = os.listdir('TestDir')
    >>> fileList
    ['test1.txt', 'test10.txt', 'test11.txt', 'test2.txt', 'test23.txt', 'test28.txt']
    >>> fileList = natsort.natsorted(fileList)
    >>> fileList
    ['test1.txt', 'test2.txt', 'test10.txt', 'test11.txt', 'test23.txt', 'test28.txt']
    >>>

    补充:python对目录下的文件排序问题

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

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

    您可能感兴趣的文章:
    • Python入门基本操作列表排序用法详解
    • Python列表排序方法reverse、sort、sorted详解
    • Python列表排序 list.sort方法和内置函数sorted用法
    • Python 排序最长英文单词链(列表中前一个单词末字母是下一个单词的首字母)
    • Python要如何实现列表排序的几种方法
    • Python 列表排序详解
    上一篇:Pytorch中的gather使用方法
    下一篇:基于Python绘制子图及子图刻度的变换等的问题
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Python 如何获取目录下的文件列表,并自然排序 Python,如何,获取,目,录下,