如何批量修改图片名称(win下)
深度学习目标检测任务中常常需要大量的图片,这些图片一般来自网络爬虫或是自行批量下载,但下载下的图片常常在保存时被命名为长段英文数字混写,因此规律化命名下载的图片数据名称就显得尤为重要了,下面我演示在本人电脑上如何批量修改图片的操作。
1,提取图片原文件名至Excel表中#
首先,crtl+a全选所有图片,并按住shift键,点击复制文件地址,再打开新建的excel表,点击A1单元格粘贴,再利用查找与替换功能去除复制的图片地址。相关操作如下:
2,设置想要修改的图片名称#
这里为了简便,设置图片由1开始逐个加1编号,并于第二列中将改后的图片名称设置完毕,相关操作如下
3,在C列中输入更名公式#
选中C列,在编辑栏中输入公式
之后按回车键,并用鼠标移动到C1单元格右下角出现+字往下填充。
公式的含义是将A1列中名字重命名为B列名字
4,新建一个批处理文档#
在与图片文件夹相同的目录下新建一个txt文档,复制Excel表格中的C列公式全列到txt文档中粘贴,保存并更改txt文档的后缀名为.bat,在保存后关闭并双击执行.bat文件,之后图片应被批量更改了
注:若是新旧名称中包含空格字符会导致改名失败,若是需要更改包含空格字符的文件,需要加入双引号,如:ren "oldname.c" "newname.c"。
对于有空格的特殊情况,如下图操作,在第3步中加入在C列的第一个单元格打入英文的引号"
,在D列1格输入以下公式即可:
="ren "&C1&A1&C1&" "&C1&B1&C1
5,利用python更改文件名字#
代码如下,更改图片存放路径再用python运行即可,本人python版本3.7:
# -*- coding:utf8 -*-
import os
class BatchRename():
'''
批量重命名文件夹中的图片文件
'''
def __init__(self):
#我的图片文件夹路径horse
self.path = 'C:\\Users\\username\\Desktop\\ImageData\\Pascal_VOC\\JPEGImages'
def rename(self):
filelist = os.listdir(self.path)
total_num = len(filelist)
i = 1
n = 6
for item in filelist:
if item.endswith('.jpg'):
n = 6 - len(str(i))
src = os.path.join(os.path.abspath(self.path), item)
dst = os.path.join(os.path.abspath(self.path), str(0)*n + 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__':
demo = BatchRename()
demo.rename()
相关参考博客:
http://www.360doc.com/content/18/1121/13/32695326_796292989.shtml
https://blog.csdn.net/weixin_44553152/article/details/108056588
https://jingyan.baidu.com/article/4f7d571203feca1a2019270d.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库