网上有些方法虽然能够对文件进行排序,但是并不是按照初始顺序进行命名的,如:
- 乱序文件夹下为:3.png, 5.png,8.png,11.png,正常情况下重名名后的对应关系为:3.png——1.png, 5.png——2.png,8.png——3.png,11.png——4.png
- 尝试了网上的一些方法,虽然也能够进行排序,但是排序前对应关系打乱,如3.png——2.png, 5.png——1.png,8.png——4.png,11.png——3.png, 这是由于在进行读取乱序文件夹(3.png, 5.png,8.png,11.png)时是随机的,导致优先读取优先命名,这种情况具体细节请参加我的另一篇博客:https://blog.csdn.net/weixin_40893448/article/details/129740047
注意:在进行排序前,需要将乱序的文件进行备份,因为排序后会变成空文件夹
import os
# 打开文件所在的文件夹路径
path = r'G:\膝关节数据\公共数据集\SKI10Data\ceshi\label/'
# 保存文件的文件夹路径
path1 = r'G:\膝关节数据\公共数据集\SKI10Data\ceshi\重命名\lalel'
if not os.path.exists(path1):
os.makedirs(path1)
else:
print('dir already exist!')
i = 1
for k in range(1,21):
# s可以修改为自己的文件名形式
s = "%d.png" % k
for file in os.listdir(path):
# print('file名字:',file,type(file))
# print('s名字:',s,type(s))
# 判断文件名中是否含有字符串m
if s == file:
print('file名字:',file,type(file))
print('s名字:',s,type(s))
# 如果想要在数字统一为3位,不够的前面补0,则使用new_name="%03d.png" % i
new_name="%d.png" % i
os.rename(os.path.join(path,file),os.path.join(path1,new_name))
i+=1