和大多同学一样在制作VOC训练集时,在JPEMImages的这一块的文件命名存有疑惑,通过爬虫不难获得数据集,但在修改文件命名时,会出现如下情况
我们用循环本意是想将文件命名为1,2,3…,10,11,12,13…,100,101…,但是遍历这些文件时,顺序就会变成1,10,100,101,…109,11,…,19,…,2,20,200,…。
那么怎么解决这类问题呢?
代码奉上!
import os
import re
import sys
#为了示例方便,将待修改与当前工作目录取同一个
def ReName():
fileList = os.listdir(r"F://JPEGImages") #待修改文件夹
print("修改前:"+str(fileList)) #修改前的文件
currentPath = os.getcwd() #得到进程当前工作目录
os.chdir(r"F://JPEGImages") #将当前工作目录修改为待修改文件夹的位置
for i in range(0,len(fileList)):
os.rename(fileList[i],str(("%05d"%i))+'.'+'jpg')#文件重新命名
# 如果想实现000000~999999,只需将这里的5改为6,诸如此类。
print("\n")
os.chdir(currentPath) #改回程序运行前的工作目录
sys.stdin.flush() #更新
print("修改后:"+str(os.listdir(r"F://JPEGImages"))) #修改后的文件
结果如图所示: