将一堆图片批量重命名在在某些场景下可能会经常用到,对于常规的按序号格式、追加文本、替换文本这些方式进行重命名我比较推荐UTools中的批量重命名插件,很好用并且支持正则表达式。
今天遇到的情况是手头的一个表格,第一列是人员姓名,最后一列是照片,需要提取最后一列的照片然后用第一列的姓名去命名,网上查了一下有用bat实现的,有用VBA实现的,但看了一会儿都没看的太懂,就暂时放弃了这两种方法,在这个过程中想到用python来实现应该比较容易,但我想到的不是直接操作excel,而是提取姓名到文本文档,然后按序号提取excel中的图片,最后将它们两个结合在一起,以下是详细的步骤。
1.提取姓名
这一步比较简单,直接选中人员姓名的一列复制到txt中就可以了,但复制之后会遇到一个问题,这个表格因为要装下图片,所以一个人员姓名占了表格七行,复制到txt文本中之后就多出了很多的空行。遇见这个问题可以用notepad++,编辑 —> 行操作 —> 移除空行(包括空白字符)
2.提取照片
如何批量导出Excel文档中的图片-百度经验 (baidu.com)
自动化办公 | 快速从Excel中提取图片并匹配命名 - 腾讯云开发者社区-腾讯云 (tencent.com)
以上两种是不要钱的方法,实测可用,因为我有WPS的会员就用了它提供的会员功能,提取文档内的所有图片,完成第一步和第二步之后得到的就是下图这样的一个文本文件和按序号排列的图片了。
3.程序代码
python实现将文件下内每张图片按顺序命名为txt文本文件中的内容_蹦跶的小羊羔的博客-CSDN博客
程序主体是参考的上一篇文章,但在测试过程中发现里边有一点小bug导致程序无法使用,于是自己稍微修改了一下,程序运行时会自动创建文件夹 ,循环的索引长度由txt文本的行数决定、增加了简单的异常处理,让程序不至于报错崩溃,另外加了一些注释。
#rename picture
import os
from PIL import Image
train_txt='少海.txt'#存有人员名字的txt文件名
os.makedirs('D:/已处理的照片', exist_ok=True)#创建输出文件夹
train_words = list(open(train_txt, "r", encoding='utf-8').readlines())
train_listcount = len(train_words)#获取list的长度,循环时使用
#开始重命名处理
for i in range(1,train_listcount+1):#后边去除文本文件自动追加的换行符索引产生了变化,因此最大索引需要+1
print('i =',i)
#如果try内部任意一行代码出现异常,直接跳转至except,执行except下的代码
#常见异常:图片不存在
try:
#未更改的原始文件名,要求按序号排列,空格、文件格式也要注意
img = Image.open("图片 " + str(i)+".png")
#img = img.convert("L")
#img = img.resize((960,96))
name = train_words[i-1].strip('\n')
print('当前索引对应人员 :',name)
img.save("D:/已处理的照片/"+name+".png", "PNG")#保存的路径和格式
except Exception as e:
pass
continue
print("------重命名已完成------")
4.使用方法
将上边的代码复制粘贴另存为 .py
文件,可使用VSCode,也可以使用Anaconda 里边的Jupyter NoteBook,当然最主要的是电脑里边要有Python的环境,这里引用2020年10月份的一篇文章:Python,Pycharm,Anaconda 区别与联系以及安装和配置 - 登山亦有道 (chenyan98.cn) 其它的就不再赘述了。
接下来把Python文件、txt文件和待处理的图片放在同一个文件夹内,打开代码,修改txt文本的名字和图片的文件名等信息,需要在什么地方修改请自行看注释,应该算是比较详细的,做完这些操作之后就可以运行程序了。
5.写在最后
20年的时候曾想着把Python作为自己入门编程的第一门开发语言,但随着时间的推移这个目标已经渐渐的被淡忘了,今天再次重新拾起来才发现已经忘的差不多了,但它的便利性依旧让我感到赞叹。
最开始看Python的时候可以说是一行一行啃的,但效果却不尽人意,最近一直在学习C#,Python虽然放下了一年多,但重新看的时候竟然感觉挺容易的,应该是个错觉吧,不太懂
6.使用bat批处理(拓展)
【摸鱼快乐】有台电脑就能用,bat批量重命名文件 - 哔哩哔哩 (bilibili.com)
ren image1.png 程胜杰.png
ren image2.png 马玉贞.png
ren image3.png 于光迎.png
ren image4.png 陈龙.png
ren image5.png 谢军涛.png
ren image6.png 朱国立.png
ren image7.png 刘华.png
ren image8.png 刘金灵.png
ren image9.png 韩海强.png
ren image10.png 郑志兵.png
ren image11.png 何晓峰.png
ren image12.png 岳远超.png
ren image13.png 李岳桐.png
ren image14.png 叶峰辉.png
ren image15.png 瞿袁平.png
ren image16.png 韩建亮.png
ren image17.png 宋振鹏.png
ren image18.png 徐学翔.png
ren image19.png 谢彦奎.png
作者:晨岩
本站所有文章除特别声明外,均采用 BY-NC-SA 4.0 许可协议。转载请注明出处!