在重命名文件的过程中使用的是rename函数,但是该函数会出现如下错误
FileExistsError: [WinError 183] 当文件已存在时,无法创建该文件。: './1Disturbed/1.png' -> './1Disturbed/2.png'
如果已经有了’2.png’文件,就无法再重命名,而在重命名的过程中需要使用os.listdir函数,这个函数就更奇怪了,他是类似于深度优先搜索的方法遍历文件名称,比如:
100->1001->1002…->101->1011…
所以当把100改成1的时候,可能原来已经有 1了就改不了,所以可以对图片进行排序,rename可以把1.png改成1.png
所以只要是升序排序,他改的标号(1,2,3,…)一定是没有出现过(比当前标号小)的或者就是本标号
附代码:
train_data_dir = './1Disturbed'
file_list=[]
file_list=os.listdir(train_data_dir)
file_list.sort(key=lambda x:int(x[:-4]))
count=1
for fname in file_list:
os.rename(train_data_dir+'/'+fname,train_data_dir+'/'+str(count)+".png")
count=count+1