引言
当我们在使用sorted函数对列表中的数字进行排序时会发现,所排的顺序并非我们想要的数字递增的顺序。
source = r'D:\YOLOv5\test\L_1501016'
files = sorted(os.listdir(source))
print(files)
得到结果如下:
['1.jpg', '10.jpg', '100.jpg', '1000.jpg', '101.jpg', '102.jpg', '103.jpg', '104.jpg', '105.jpg', '106.jpg', '107.jpg', '108.jpg']
解决方法
使用关键字进行排序的定义
source = r'D:\YOLOv5\test\L_1501016'
files = sorted(os.listdir(source),key=lambda x:int(str(x).split('.')[0]))
print(files)
得到结果如下:
['1.jpg', '2.jpg', '3.jpg', '4.jpg', '5.jpg', '6.jpg', '7.jpg', '8.jpg', '9.jpg', '10.jpg', '11.jpg', '12.jpg', '13.jpg', '14.jpg']