Python 使用sort(key=lambda)按顺序读取指定文件夹下的文件

tech2022-07-09  204

方法/函数说明: sort()函数用于对原列表进行排序 主要使用sort(key = lambda)对文件进行排序 os.getcwd()方法用于返回当前进程的工作目录。 os.listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表。 split() 通过指定分隔符对字符串进行切片,返回分割后的字符串列表。

import os path=os.getcwd() #返回当前进程的工作目录 path_list=os.listdir(path) path_list.sort() #对读取的路径进行排序 print(path_list)

输出: [‘1.jpg’, ‘10.jpg’, ‘11.jpg’, ‘12.py’, ‘2.jpg’, ‘3.jpg’, ‘4.jpg’, ‘5.jpg’, ‘6.jpg’, ‘7.jpg’, ‘8.jpg’, ‘9.jpg’] sort()采取了按字符键值排序的手段,所以a10排在了前面。 修改代码如下:

import os path=os.getcwd() #返回当前进程的工作目录 path_list=os.listdir(path) path_list.sort(key=lambda x:int(x[:-4])) #将‘.jpg’左边的字符转换成整数型进行排序 print(path_list)

输出: [‘1.jpg’, ‘12.py’, ‘2.jpg’, ‘3.jpg’, ‘4.jpg’, ‘5.jpg’, ‘6.jpg’, ‘7.jpg’, ‘8.jpg’, ‘9.jpg’, ‘10.jpg’, ‘11.jpg’] 12.py是程序文件,int(x[:-4]),实际输出整数1. 针对不同的文件后缀可以使用另一种排序

import os path=os.getcwd() #返回当前进程的工作目录 path_list=os.listdir(path) path_list.sort(key=lambda x:int(x.split('.')[0])) #对‘.’进行切片,并取列表的第一个值(左边的文件名)转化整数型 print(path_list)

输出: [‘1.jpg’, ‘2.jpg’, ‘3.jpg’, ‘4.jpg’, ‘5.jpg’, ‘6.jpg’, ‘7.jpg’, ‘8.jpg’, ‘9.jpg’, ‘10.jpg’, ‘11.jpg’, ‘12.py’] 这样排序的文件就按照数字来排序

最新回复(0)