os.listdir(path)
例如:
import os
path = r"test/"
filenames=os.listdir(path)
print(filenames)
path路径结尾加不加斜杠(“/”)对结果无影响
返回的是列表里面存储该path下面的一级子目录的名称
例如
输出的是:
['1.png', '2', '2.png', '3.png', '4.png']
只展示一级子目录
当我们用os.listdir()打开文件时:
发现返回的是这样的
['1.jpg', '10.jpg', '11.jpg', '12.jpg', '2.jpg', '20.jpg', '21.jpg', '22.jpg']
是按照采取了按字符键值排序的手段,所以10.jpg排在了前面。
解决办法:
返回的值都是数列了
可以按照自己的想法来进行“sort”排序
1.数字大小排序
按照“.”之前的数字大小排序
import os
path = r"test"
filenames=os.listdir(path)
filenames.sort(key=lambda x:int(x.split('.')[0]))
print(filenames)
得到
['1.jpg', '2.jpg', '10.jpg', '11.jpg', '12.jpg', '20.jpg', '21.jpg', '22.jpg']
2.在指定长度数字
某些文件包含字母或汉字
指定某几个位置的数字经行“sort”
import os
path = r"test"
filenames=os.listdir(path)
filenames.sort(key=lambda x:int(x[5:-4]))
print(filenames)
['屏幕截图 1.png', '屏幕截图 2.png', '屏幕截图 10.png', '屏幕截图 11.png', '屏幕截图 19.png', '屏幕截图 20.png']
要看看你的非数字字符的位置,来判断取值范围