您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

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

51自学网 2021-10-30 22:37:45
  python
这篇教程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 osurl='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 osimg_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]的含义是从文件名开始到倒数第四个字符为止)

以上为个人经验,希望能给大家一个参考,也希望大家多多支持51zixue.net。


Pytorch中的gather使用方法
python 中的collections.OrderedDict() 用法
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。