input_dir 为需要改名字的大量图片的文件夹地址
input_csv为需要改后的名字的文件地址,csv里面有原图片的名字以及改后的名字
我这里第0列是原图片名字,第5列是改后的名字,可以根据具体要求适当调整。
注意:输出后是会直接覆盖原文件夹,所以记得提前备份,不然改后很难恢复要来的名字。
import csv
import os
import tensorflow as tf
input_dir = "/home/NEWDISK/caad_images/mix2000"
input_csv ="/home/NEWDISK/caad_images"
def load_true_class(input_csv):
"""Loads changename document."""
with tf.gfile.Open(os.path.join(input_csv, 'changename.csv')) as f:
return {row[0]+'.png': int(row[5]) for row in csv.reader(f) if len(row) >= 2}
def rename(input_dir):
filelist = os.listdir(input_dir)
total_num = len(filelist)
i = 0
for item in filelist:
if item.endswith('.png'):
print(item)
if item in all_true_class.keys():
print(all_true_class[item])
src = os.path.join(os.path.abspath(input_dir), item)
dst = os.path.join(os.path.abspath(input_dir), str(all_true_class[item]) + '.png')
try:
os.rename(src, dst)
i = i + 1
except:
continue
print(i)
if __name__ == '__main__':
all_true_class = load_true_class(input_csv)
rename(input_dir)