解决python语言里os.listdir(path)乱序问题

  刚改了一版代码后发现我测试集的准确率降到4%,顿时感觉毕业遥遥无期,真是跪了orz。后来调试时发现,os.listdir(path)在执行的时候读取的path下的文件不是按照window下的字典序,规律毫无。   在下面的图片中,左边的图片显示的是根目录下的文件夹,右边的是利用下面的语句打印出来的:

#path是指根目录
for file_name in os.listdir(path):
    print(file_name)

我们能发现利用os.listdir列举出来的文件夹是无规律的。 — 所以我们要手动将os.listdir按照字典序进行排列,代码如下:

rootpath = os.listdir(path)
rootpath.sort(key= lambda x:int(x))
for filename in os.listdir(rootpath):
    print(filename)

这样打印出来的结果就是按顺序。 — 注意事项: 1、文件夹的文件名要是数字,不能带有英文字母或者其他符号。 2、由于注意事项1的存在,对于图片的排序,我们必须将".jpg"或者".png"等后缀名去掉再进行排序,即将图片名字的后4位去掉,代码如下:

rootpath = os.listdir(path)
rootpath.sort(key= lambda x:int(x[:-4]))
for filename in os.listdir(rootpath):
    print(filename)
经验分享 程序员 微信小程序 职场和发展