Python os.listdir()函数在windows和Linux上的不同表现
最近在处理视觉数据集的时候,我在本地(win10)上编写的预处理程序在上传服务器(Linux)运行后,虽然没有报错,但在同一ID目录下的多张图片由之前的10-20张变为了2-4张。
在翻阅文件后,发现同ID同镜头下的多张照片仅存在计数标签为0001的图片,很明显计数器的更新存在bug。
在日志文件中发现,程序处理图片的顺序并不是像在本地(win10)上是按照文件名称按字符串大小顺序处理。
通过测试发现,***os.listdir()函数在win上读取出来的目录列表是按照文件名称按字符串大小顺序排列;同样的测试程序在放到Linux下则读取出的目录列表并非顺序。***也就是os.listdir()函数在Linux下读出来的目录列表并非顺序从而使得同ID下原本顺序的照片变为乱序,进而导致计数器被反复刷新,使得新读取的非连续同ID的图片以0001的计数标签覆盖反复覆盖原有图片。