问题: 如果path下的文件命名序号为1,2,3, …, 10,11,…的话,使用os.listdir函数排序后得到的是1,10,11,…。这种结果往往不是我们要的结果。
解决方法: 我们可以利用sorted函数和lambda表达式进行排序。代码如下:
import os
img_sort = os.listdir('D:\Images\set12')
# get_key是sotred函数用来比较的元素,该处用lambda表达式替代函数。
get_key = lambda i : int(i.split('.')[0])
img_new_sort = sorted(img_sort, key=get_key)
print(img_sort, '\n', img_new_sort)
对比结果如下: