通常拍摄的一组数据集,图片命名会比较长,不方便人眼查看;
可以按照制定规则重命名,比如统一以8位长度的数字命名
1 图片批量重命名、格式转换
batch_rename.py
import os
import cv2
import shutil
# convert_format # 图片格式转换标志,默认为jpg不转换;如果转换其他格式,这里设为True
def renane(path_in,path_out,convert_format = False):
file_in = os.listdir(path_in) #返回文件夹包含的所有文件名
num_file_in = len(file_in) #获取文件数目
for i in range(num_file_in):
#重命名并转换格式
if convert_format:
# 方法一:原文件直接改后缀 (快,简单粗暴,图片只改了后缀,并未转换格式,有时可能会出错)
#new_name = os.rename(path_in+"/"+file_in[i],path_in+"/"+'%08d.' % i + format)
#方法二:读取图片后,以新的格式重新保存 (慢,稳妥)
img = cv2.imread(os.path.join(path_in, file_in[i]))
cv2.imwrite(os.path.join(path_out, '%08d.' % i + format), img) # 统一命名为8位数字格式 ,设置对应的图片后缀名
#件重命名
else:
#原文件重命名
new_name = os.rename(path_in+"/"+file_in[i],path_in+"/"+'%08d.jpg' % i)
#复制到新路径下,并重命名
#shutil.copyfile(os.path.join(path_in, file_in[i]), os.path.join(path_out, '%08d.jpg' % i))
if __name__ == '__main__':
#待批量重命名的文件夹
path_in = "D:\Code\image2"
path_out = "D:\Code\image3"
format = "png" #重命名后的文件名后缀
renane(path_in,path_out,convert_format = True)