大量图片或者文本名需要重命名的时候,一个一个修改太麻烦,这个时候就需要快速简洁的方法来搞定。最近在处理数据的时候,需要对图片和文本进行重命名,做了一下实验。
比如像这两个不同的数据,需要将原本图像名程进行修改,现在要将上千张类似的图片名称进行修改,将所有图片放入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”即可。