【python】python中os.listdir的排序问题
今天用os.listdir()遍历文件夹下的图片发现,它的输出结果并不是按照某种特定顺序来的,这样输出就不是固定的。
os.listdir的结果就是一个list集,可以使用list的sort方法来排序。如果文件名中有数字,就用数字的排序。
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’]
12.py是程序文件。
sort()采取了按字符键值排序的手段,所以10.jpg排在了前面。
修改代码如下:
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’]
这样排序的文件就按照数字来排序。
参考
https://www.cnblogs.com/jins-note/p/9550388.html
https://blog.csdn.net/qq_41573001/article/details/108368942
【python】python中os.listdir的排序问题相关推荐
- Python中os.listdir的排序问题
参考 Python中os.listdir的排序问题 - 云+社区 - 腾讯云 上周应别人要求,使用python批量修改文件名称. 文件名有规律,当时就用了一个函数直接精确的用文件名替换了.后来想直接 ...
- python中os.listdir用法
python中os.listdir用法 一. 获取指定文件夹下的所有文件 import os path_name = 'E:\test\' # 输入要获取文件的根目录 for filename in ...
- python中os.listdir的用法
os.listdir()方法用于返回指定文件夹包含的文件或文件夹的名字的列表.这个列表以字母顺序,不包括'.'和'-'即使其在文件夹中. path = 'www/var/http/' os.listd ...
- python中os.listdir()的使用和文件批量重命名方法
作用 返回指定文件夹路径下的文件名称列表 用法 path_name = './image' #文件夹路径 files = os.listdir(path_name) #路径下的文件名称列表 博文已经迁 ...
- Python中os.listdir() 函数用法及实例
listdir()语法格式:os.listdir(path) 描述:返回指定路径下的文件和文件夹列表. 实例: # 打开文件 path = "./TACOS/" dirs = os ...
- python中os.listdir( )函数读取文件夹
问题:需要批量图片 且要求处理前和处理后的图片顺序相同 os.listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表,但有个很明显的缺点,它的默认顺序不是有序的或者说不是通常的顺序 ...
- python 文件操作 os.listdir() 遍历文件
功能: 返回所给路径中所有文件(包含文件夹)的名称列表 doc: def listdir(*args, **kwargs): # real signature unknown""& ...
- 使用Python标准库函数os.listdir()时的4个注意事项
好消息:"Python小屋"编程比赛正式开始 推荐图书: <Python程序设计(第3版)>,(ISBN:978-7-302-55083-9),董付国,清华大学出版社, ...
- python macos listdir_Python os.listdir()用法及代码示例
python中的os.listdir()方法用于获取指定目录中所有文件和目录的列表.如果我们未指定任何目录,则将返回当前工作目录中的文件和目录列表. 用法: os.listdir(path) 参数: ...
最新文章
- MySQL 5.5.35 单机多实例配置详解
- pdf怎么压缩大小?
- ubuntu nginx php7,ubuntu 16 安装php7+nginx
- python 调用c++库接口出错
- springMVC重复扫描bean导致声明式事务失效
- Mark Cuban投资组合中60%为BTC,30%为ETH
- Laravel 队列发送邮件
- HTML学习总结(1)——HTML基本介绍
- visual studio配置opencv
- Domino部署多台notes server
- 10个最佳QR码二维码和条形码Javascript库
- MOCTF-WRITE-UP(二)
- mysql空洞_Mysql 表空间和 数据页空洞
- 1072 开学寄语 C++实现
- php中column函数,PHP array_column() 函数用法及示例
- 分享几个不错的流程图制作网站
- TensorFlow Object Detection API 多GPU 卡平行计算,加速模型训练速度教学
- 《视觉SLAM十四讲》学习笔记:第5讲相机与图像
- pytorch 网络可视化(五):netron
- cesium--添加模型