1 图片批量命名&批量改名
辅助工具 => Change_Name.py
Change_Name.py
# -*- coding=utf-8 -*-
# Author: zjc
# Creation Date:18-11-
import os
import sys
import glob
import platform
if __name__ == '__main__':
'''
=== ===> 命名功能 <=== ===
前面这部分可以一步到位,改成自己想要的名字, 与后面的内容可以分开使用
'''
# /=== ===> 命名功能 <=== ===\
# |把文件夹内的图片不管什么名字, 全改为要求格式的名字 xxx.jpg => 1-001.jpg
# |(eg: 001-1.jpg ~ 1-300.jpg)
path = os.getcwd()
x = 1 # x: int型 用于给图像命名 001, 002, ..., 030
for pic_path in glob.glob(os.path.join(path, '*.jpg')): # 对每一个.../.../xxx.jpg这样的路径处理
if platform.system() == 'Windows':
symbol = '\\'
else:
symbol = '/'
pic_name = pic_path.split(symbol)[-1].split('.jpg')[0] # 得到.../xxx.jpg后面的xxx.jpg, 得到xxx.jpg前面的xxx
xx = '%03d' % x # xx: str型 用于给图像命名 001, 002, ..., 030
os.rename(str(pic_name) + '.jpg', str(xx) + '-1.jpg')
x = x+1
# |得到结果为: 001-1.jpg ~ 300-1.jpg (300张图片)
# \=== ===> 命名功能 <=== ===/
'''
=== ===> 改名功能 <=== ===
后面这部分可以将已有的有顺序图片,改成自己想要的另一种格式的名字
'''
# /=== ===> 改名功能 <=== ===\
# |把符合要求格式的图片(eg: 001-1.jpg ~ 300-1.jpg)
# |改为另一种格式 (eg: 4-001.jpg ~ 4-300.jpg)
# |001-1.jpg => 4-001.jpg
# print("目录为: %s"%os.listdir(os.getcwd()))
path = os.getcwd()
print('路径为:%s' % os.getcwd())
print('*.jpg文件的数量为:', len(glob.glob(os.path.join(path, '*.jpg')))) # 当前路径+.jpg, 形成具体图片路径
for i in range(len(glob.glob(os.path.join(path, '*.jpg')))):
# for i in range(len())计算一共多少图片, 逐个形成具体图片的路径=当前路径+.jpg = path_last
path_last = glob.glob(os.path.join(path, '*.jpg'))
i = i + 1 # for循环是从0开始的,图片命名是从第一张开始的, 因而+1
i = '%03d' % i
# %3d--可以指定宽度,不足的左边补空格, eg: 2 => 002
# %i可以自动将输入的八进制(或者十六进制)转换为十进制
print(i)
os.rename(str(i) + '-1.jpg', '4-' + str(i) + '.jpg')
# 002-1.jpg => 4-002.jpg,
# 这是因为我之前用的deepsort采集的图片:命名为002-1.jpg 需要改名
# 当时生成的图片无论tbj, dw, zsy, zjc都是xxx-1.jpg格式命名的
# 现在要分别改名 tbj => 1-xxx.jpg
# dw => 2-xxx.jpg
# zsy => 3-xxx.jpg
# zjc => 4-xxx.jpg
# 所以上述改名需要将每个人的所有图片,单独放在一个文件夹里面进行改名
# 然后在训练时, 再将所有人的照片都放进同一个文件夹
# |得到结果为: 4-001.jpg ~ 4-300.jpg (300张图片)
# \=== ===> 改名功能 <=== ===/