作者目的
想将图片名字按照种类‘abc’+‘1’的格式命名,并将图片格式统一修改为jpg
以便后续的训练和图片标注
建立类似的鸟类数据集,命名音节中用_隔开(必做)
打开一种鸟类图像,用记事本新建rename和renamejpg两个py小程序,保存时加上.py
(需要电脑上配置python和pycharm 我用的是py3.0,pycharm2023)
renamejpg.py内容如下
import os
#想要更改图片所在的根目录
rootdir="D:/bird/2~12/Tadorna_ferruginea/赤麻鸭 Tadorna ferruginea"
#获取目录下文件名清单
files=os.listdir(rootdir)
#对文件名清单里的每一个文件名进行处理
for filename in files:
portion=os.path.splitext(filename) #portion为名称和后缀分离后的列表 #os.path.splitext()将文件名和扩展名分开
if portion[1]==".png": #如果为tiff则更改名字
newname=portion[0]+".jpg" #要改的新后缀 #改好的新名字
print(filename) #打印出要更改的文件名
os.chdir(rootdir) #修改工作路径
os.rename(filename,newname) #在工作路径下对文件名重新命名
rename.py内容如下
# -*- coding:utf8 -*-
import os
# 定义一个名为 BatchRename 的类,用于批量重命名图片文件
class BatchRename():
'''
批量重命名文件夹中的图片文件
'''
# 初始化方法,设置存放图片的文件夹路径
def __init__(self):
self.path = 'D:/bird/2~12/Tadorna_ferruginea/赤麻鸭 Tadorna ferruginea' #存放图片的文件夹路径
# 重命名图片的方法
def rename(self):
# 获取指定路径下的文件列表
filelist = os.listdir(self.path)
# 获取文件列表的总数量
total_num = len(filelist)
# 初始化计数器
i = 1
# 遍历文件列表
for item in filelist:
# 如果文件以.jpg 结尾(即判断为图片格式)
if item.endswith('.jpg'):
# 构建源文件的完整路径
src = os.path.join(os.path.abspath(self.path), item)
# 构建目标文件的完整路径,设置新的文件名
dst = os.path.join(os.path.abspath(self.path), 'Tadorna_ferruginea' + str(i) + '.jpg')
try:
# 尝试重命名文件
os.rename(src, dst)
# 打印重命名的信息
print ("converting %s to %s..." % (src, dst))
# 计数器递增
i = i + 1
except:
# 如果重命名过程中出现异常,继续处理下一个文件
continue
# 打印重命名的总结信息
print ("total %d to rename & converted %d jpgs" % (total_num, i))
if __name__ == '__main__':
# 创建 BatchRename 类的实例
demo = BatchRename()
# 调用 rename 方法执行重命名操作
demo.rename()
让我们看看如何操作
原本图片命名如下
修改renamejpg.py的内容
只需修改两行
将此行改成鸟类的拉丁名(用下划线分隔音节)
点开存放图片的文件
复制存放路径
修改此行代码
将\替换成/(修改为绝对路径)
保存一下
修改renamejpg.py文件
用记事本打开
修改此行即可
保存一下
windows+R
cd /d +文件夹地址
运行python.renamejpg.py
再运行python.rename.py
自动将数据集中.png-——转变为.jpg
将无法命名的图片删除
本文参考Python:批量修改图片的后缀名_python 批量修改图片后缀名-CSDN博客
熟练后一分钟命名一种,作者用90分钟命名了50种水鸟