对照片按照制定对应关系进行批量重命名

持有几千张按照考生号命名的学生照片,后期工作中把以考生号命名的照片改成以学生身份证号码命名。使用几行python语句即可实现。

准备工作:1.以考生号命名的照片存在放在同一文件夹中,记住存放位置

                   2.表格数据,里面仅有两列数据,分别是第一列考生号,第二列身份证号,另存为csv格式。

实现思路:

  1. 导入了os和csv模块
  2. 用with语句打开名为'2022.csv'的文件,以只读模式打开,并指定编码为'utf-8-sig'
  3. 使用csv模块中的DictReader函数,将文件对象作为参数传入,并将读取到的数据按行转换成字典形式,即将每行的表头作为字典的键,该行的数据作为字典的值
  4. 创建了一个空的字典id_dict,用于存储csv文件中的考生号和身份证信息
  5. 遍历读取到的csv文件内容,对于每一行数据,将考生号作为字典id_dict的键,身份证作为值存入字典id_dict中。
  6. 指定需要修改文件名的文件夹路径。
  7. 使用os.listdir()方法遍历文件夹中的所有文件,返回一个包含文件名的列表。
  8. 使用os.path.join()方法将文件夹路径和文件名拼接成完整的文件路径。
  9. 使用os.path.isfile()方法判断该路径是否为文件,排除文件夹路径的干扰。
  10. 使用id_dict.keys()方法遍历考生号和身份证号的字典的所有键值。
  11. 判断当前文件名是否包含该考生号。
  12. 使用str.replace()方法将考生号替换为对应的身份证号,生成新的文件名。
  13. 使用os.rename()方法将旧的文件名修改为新的文件名。
import os
import csv

# 读取csv文件中的考生号和身份证信息
with open('C:\\Users\\Lenovo\\Desktop\\New Folder\\2022.csv', 'r', encoding='utf-8-sig') as f:
    reader = csv.DictReader(f)
    id_dict = {}
    for row in reader:
        id_dict[row['考生号']] = row['身份证']

# 遍历目录中的所有文件,将考生号改名为身份证号
folder = 'C:\\Users\\Lenovo\\Desktop\\New Folder \\2022'
for filename in os.listdir(folder):
    filepath = os.path.join(folder, filename)
    if os.path.isfile(filepath):
        # 判断文件名是否为考生号
        for key in id_dict.keys():
            if key in filename:
                new_filename = filename.replace(key, id_dict[key])
                os.rename(filepath, os.path.join(folder, new_filename))
                break

这样,就可以将路径下的所有考生号命名的照片修改成对应的身份证号了。需要注意的是,如果有多个考生号出现在同一个文件名中,上述代码只会替换第一个考生号,需要根据具体情况进行修改。另外,为了避免误操作,建议在执行代码之前先备份原始文件,注意程序编码方式。

这个程序的主要功能是批量修改指定文件夹下的文件名,将文件名中的考生号替换成身份证号。程序中首先读取指定的CSV文件,获取考生号和身份证号的对应关系,然后依次遍历指定文件夹下的所有文件名,判断文件名是否包含考生号,如果包含则将考生号替换成身份证号,最后使用os模块的rename函数将文件名修改为新的名字。

一般的应用场景包括:在学校或机构中,需要将学生或员工的个人信息与照片进行匹配,可以利用这个程序将照片文件名修改为身份证号或学号等唯一标识符,以便进行管理和查询;另外,在某些场景下,需要对大量文件进行批量重命名,例如批量下载的图片或电影等,可以利用这个程序快速修改文件名,提高工作效率。

同时进行简单的修改可以批量对各种类型的文件进行批量重命名。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值