python根据excel清单对文件批量重命名

简单且好用,目标是根据图片名称中的身份证号,从excel表里查找对应的学院,然后将学院名字加在图片名称前。

图片名称的前18位是身份证号,截取出来在excel中遍历,获取到对应的学院名,对图片重命名加在前面。

最后结果

用到os,xlrd两个库,os自带,xlrd直接执行命令行pip install xlrd进行安装。os用于读取文件名和重命名文件,xlrd用于读取excel的操作。

xlrd的使用:

https://www.cnblogs.com/zhang-jun-jie/p/9273721.html

 

整个过程代码如下

import os
import xlrd

dirpath = '/路径..../目标文件夹'  #存放图片的文件夹
datapath = '/路径..../dataset.xlsx'      #excel表路径

x1 = xlrd.open_workbook(datapath)      #读取excel
sheet1 = x1.sheet_by_name("Sheet1")    #读取sheet1

idlist = sheet1.col_values(0)    #存放第一列
xylist = sheet1.col_values(1)    #存放第二列

file_names = os.listdir(dirpath)    #获取文件夹下所有图片名称

for i in file_names:
    id = i[:18]      #截取前18位
    if id in idlist:
        xy = xylist[idlist.index(id)]
        #print(xy)
        os.renames(os.path.join(dirpath, i), os.path.join(dirpath, xy +'-' +i))      #重命名
原文地址:https://www.cnblogs.com/sssssaylf/p/13952765.html