python按顺序重命名文件,文件有重复名字
1、按顺序重命名时如果用os.listdir(),是链表形式,重命名是乱序的,解决方案是先根据名字排序
2、文件内有重复的名字的话,在一个文件无法重命名,会报错,解决方案就是再新建一个文件夹
举例:新建一个1-50的文件,删除20-30的文件,再按数字重新命名
# -*- coding:utf-8 -*- import os #生成1-50的文件 if not os.path.exists('D:/'+'/bb'): os.makedirs('D:/'+'/bb') if not os.path.exists('D:/'+'/aa'): os.makedirs('D:/'+'/aa') for i in range(50): f=open('D:/aa/'""+str(i+1)+'.txt',"a") f.close #删除20-30名称的文件 for j in range(20,30): os.remove('D:/aa/'""+str(j)+'.txt') #按顺序重命名去除后的文件 path=r"D:/aa" num=0 path1=r"D:/bb" filelist=os.listdir(path) get_key=lambda i: int(i.split('.')[0]) new_sort=sorted(filelist,key=get_key) print(filelist,'\n',new_sort) for file in filelist: oldname=path+os.sep+new_sort[num] newname=path1+os.sep+str(num+1)+'.txt' #os.sep根据你所处的平台,添加响应的分割符号 os.rename(oldname,newname) # shutil.move(oldname,newname) #和os.rename结果一致 print(oldname,'==========>',newname) num=num+1
结果: