根据表格重命名图片
由于NOIP报名的问题,谢老师想把照片根据Excel表格中的信息重命名。原来的照片格式为:名字.jpg
或者编号+名字.jpg
。我觉得这个要去网上找软件也很麻烦,应该拿来用Python搞搞就好了,于是就自告奋勇地接下了这个任务,结果花了我半个小时不止……(没办法Python不熟)
首先,当然要处理Excel表格,我的做法是把编号和名字那列提出来,然后另存为csv文件。这样csv文件里面每一行都是编号,名字
然后要对csv文件进行处理,转成UTF-8编码,这样Python处理的时候就省事很多了
然后就是程序如下(Python2.7):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
|
大概的流程就是先把名字和编号存到字典names
里面,然后对于目录当中的每个.jpg文件,得到那个人的姓名(也就是old
),再在字典中查询,生成新的文件名并重命名。还有一个就是能显示出哪些人在名表中但是没有照片,以及哪些人有照片但不在名表中。
其实那个过滤数字和空格的方法是从StackOverflow上找到的,见:Strip all non-numeric characters (except for “.”) from a string in Python