大量图片或者文本名需要重命名的时候,一个一个修改太麻烦,这个时候就需要快速简洁的方法来搞定。最近在处理数据的时候,需要对图片和文本进行重命名,做了一下实验。
比如像这两个不同的数据,需要将原本图像名程进行修改,现在要将上千张类似的图片名称进行修改,将所有图片放入image文件夹,从0开始编号,代码如下:
- import os
-
- class BatchRename():
-
- def rename(self):
- path = "E:/python/data/add_data/image"
- filelist = os.listdir(path)
- total_num = len(filelist)
- i = 0
- for item in filelist:
- if item.endswith('.png'):
- src = os.path.join(os.path.abspath(path), item)
- dst = os.path.join(os.path.abspath(path), ''+str(i)+'.png')
- try:
- os.rename(src, dst)
- i += 1
- except:
- continue
- print('total %d to rename & converted %d png'%(total_num, i))
-
- if __name__=='__main__':
- demo = BatchRename()
- demo.rename()
-
代码运行完之后,文件夹里面的图片名称就是按照从0开始排序命名的。
所有图像打乱后重新命名的结果如上图所示。
文本重命名与图片一样,只需要把上述代码中的“png”换成“txt”即可。