[Python] 利用os库和xlrd库实现根据excel清单批量修改文件名

问题描述:

已知有一文件夹存放着若干按照:身份证号码_姓名格式命名的图片。有一表格里记录身份证号码、姓名和学号。现在需要根据图片文件名上面的身份证号码去寻找表格里相应的学号,并将文件重命名为:学号_姓名,要求为.jpg格式。

文件夹内容如下:

excel表格内容如下:

 代码实现:

import os
import xlrd

# 图片所在的路径
img_path = r"D:\素材"
# excel表路径(注意不支持.xlsx)
xlsx_path = r"D:\批量处理测试.xls"
# 读取excel表:批量处理测试.xlsx
xlsx1 = xlrd.open_workbook(xlsx_path)
# 读取表格里第一个sheet(工作簿)
sheet = xlsx1.sheet_by_index(0)

# 获取表格第一列数据
one_col_list = sheet.col_values(0)
# 获取表格第三列数据
three_col_list = sheet.col_values(2)

# 获取该文件夹下所有的文件(包括文件夹)
file_names = os.listdir(img_path)

for file_name in file_names:
    catalog = os.path.join(img_path, file_name)  # 获取所有文件的路径
    if os.path.isdir(catalog):  # os.path.isdir判断是不是目录;跳过目录
        continue
    # 获取文件名的前18位(也就是获取身份证号码)
    id = file_name[:18]
    if id in one_col_list:
        # 获取表格中,相应身份证号码的学号
        corresponding = three_col_list[one_col_list.index(id)]
        # 将文件名更新为学号_姓名
        new_file_name = str(int(corresponding))+file_name[18:22]
        # 重命名
        os.renames(os.path.join(img_path, file_name), os.path.join(img_path, new_file_name)+'.jpg')

实现效果:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我好想敲代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值