朋友问了我一个问题:
为啥他用了os.listdir后图片顺序不对了...
我很好奇
import osdef deal(path):file_names = os.listdir(path)c = 0# 随机获取一张图片的格式f_first = file_names[0]suffix = f_first.split('.')[-1] # 图片文件的后缀for file in file_names:os.rename(os.path.join(path, file), os.path.join(path, '{:0>6d}.{}'.format(c, suffix)))c += 1if __name__ == '__main__':deal('D:\code\JPEGImages') # 请按需修改图片文件的路径
我试了试断点
我看这还这是,1,10,100,101........离谱
后来看了博主的博客
(2条消息) 解决python语言里os.listdir(path)乱序问题_huanhuan_Coder的博客-CSDN博客 /huanhuan_Coder/article/details/86180252
/huanhuan_Coder/article/details/86180252
确实解决了问题
更改后的为:
import osdef deal(path):file_names = os.listdir(path)file_names.sort(key=lambda x: int(x[:-4]))c = 1# 随机获取一张图片的格式f_first = file_names[0]suffix = f_first.split('.')[-1] # 图片文件的后缀for file in file_names:os.rename(os.path.join(path, file), os.path.join(path, '{:0>6d}.{}'.format(c, suffix)))c += 1if __name__ == '__main__':deal('E:\code\jpegimage\JPEGImages') # 请按需修改图片文件的路径
c也改了,如果是c=0会从0000开始,我改成了c=1