python实战-读取xlsx表格批量替换文件名

article/2025/9/3 22:00:54

文章目录

        • 一、前言
        • 二、解决思路
        • 三、具体代码实现
        • 四、总结

一、前言

​  一位在校当老师的同学遇到了一个需求,学生1寸照片是以学生姓名命名,现在需要重命名1寸照片,重命名为exel里对应的学生姓名的身份证号码,我心想这个需求很容易实现,照片有上百近千张如果手动修改那是很痛苦很低效的,用python就能很轻松的解决这个问题。格式图片如下:

在这里插入图片描述
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-q5crcLRP-1667208273640)(Y:\WHAT\笔记\技能树\编程\Python\image\学生图片.png)]
在这里插入图片描述

二、解决思路

​  学生图片都是以名字命名,所以要读取表格里的姓名列、证件号码列,然后读取目录下图片的名称与表格姓名列进行对比,对比成功就修改对应的证件号码。

三、具体代码实现

先安装一下pandas库,用于读取表格数据。

pip isntall pandas

直接上代码:

import pandas as pd
import os
import re
import argparse# 获取目录下的excel文件
def getExcel(dataPath, excelPath):for maindir, subdir, file_name_list in os.walk(excelPath):for filename in file_name_list:data = {}apath = os.path.join(maindir, filename)file_path = apath.replace("\\", "/")df = pd.read_excel(file_path)df = pd.DataFrame(df, columns=['姓名', '证件号码'])for i in df.values:data[i[0]] = i[1]print(data)modifyName(data, dataPath)# 修改文件名
def modifyName(data, dataPath):try:for maindir, subdir, file_name_list in os.walk(dataPath):for filename in file_name_list:try:apath = os.path.join(maindir, filename)file_path = apath.replace("\\", "/")student_name = filename.strip(".jpg")p = re.compile(r"(.*)/")filepath = p.match(file_path).group(1)new_file_name = filepath + "/" + \data[student_name] + ".jpg"print("[+] 修改成功", file_path, new_file_name)os.rename(file_path, new_file_name)except Exception as e:print("error:", e)print("[-] 请检查:", student_name,"是否存在对应身份证号码。", "文件路径:", file_path)continueexcept Exception as e:print("error:", e)if __name__ == "__main__":example_text = """python modifyFileName.py -d d:\data -e d:\excel"""try:parser = argparse.ArgumentParser(description=example_text, formatter_class=argparse.RawTextHelpFormatter)parser.add_argument("-d", "--data", required=True)parser.add_argument("-e", "--excel", required=True)args = parser.parse_args()data = args.dataexcel = args.excelgetExcel(data, excel)except:pass

​  直接给代码的话他还需要安装python与相应的库,为了解决让他开箱即用的问题,用我们之前学的pyinstaller来打包成exe,这样就可以直接运行了。

pyinstaller -F modifyFileName.py

在这里插入图片描述在这里插入图片描述

在这里插入图片描述

pyinstaller教学链接:

https://blog.csdn.net/syl321314362/article/details/127619571

最后运行结果:

在这里插入图片描述
在这里插入图片描述

四、总结

关注我,微信搜索艺说IT公众号,学习更多技术干货,对你有帮助请点个赞,感谢各位帅哥美女。`


http://chatgpt.dhexx.cn/article/DopIe4nk.shtml

相关文章

百看不如一练, 247 个 Python 实战案例!

众所周知,我们在学习Pyhont过程中,大都看书枯燥、看视频进度慢,网上查找的学习案例又比较凌乱不成体系。。。 百看不如一练,今天为大家搜集了一份Python从入门到进阶的实战案例合集,共计247个案例,185页内容…

整理了200多个Python实战案例,都有完整且详细的教程

不管是学习什么语言,最终目的都是做项目。搜遍全网,整理了200多个Python实战的小项目,都有完整的代码,以及代码中用到的数据源等等。可以直接拿来用,也可以用于学习练手寻找思路。 告别枯燥,60秒学会⼀个⼩…

精选32个最新Python实战项目(附源码),拿走就用

Python是目前最好的编程语言之一。由于其可读性和对初学者的友好性,已被广泛使用。那么要想学会并掌握Python,可以实战的练习项目是必不可少的。接下来,我将给大家介绍20个非常实用的Python项目,帮助大家更好的学习Python。大家也…

Appium + python 实战

文章目录 Appium介绍Appium 原理Appium使用Appium Python实战 Appium介绍 是一个移动端的自动化测试框架,是跨平台的,支持ios和Android平台上的移动原生应用、混合以及web移动应用,可以针对不同的平台使用一套API来编写测试脚本&#xff0c…

30个有趣的Python实战项目(附源码)

大家好,今天给大家重磅推荐我的好朋友J哥的公众号——「菜J学Python」,J哥经常在公众号分享有趣的Python实战项目,而且基本都附代码和数据。废话不多说,大家先点击以下卡片关注一波: 点击关注菜J学Python J哥是985金融…

35个Python实战项目,完整源代码!

收集整理最新36个python实战项目源代码,系统实用,不是普通的小脚本! 多看多练是提升代码能力的最佳途径,一起操练起来! 视频转字符动画 12306 B站弹幕 B站滑块验证码破解 GUI签名 python爬取并简单分析51job py…

全网首发!精选32个最新Python实战项目(附源码),拿走就用!

Python是目前最好的编程语言之一。由于其可读性和对初学者的友好性,已被广泛使用。那么要想学会并掌握Python,可以实战的练习项目是必不可少的。接下来,我将给大家介绍32个非常实用的Python项目,帮助大家更好的学习Python。大家也…

整理了60个 Python 实战例子,拿来即用!

人生苦短,我用 Python! 大家好,最近有一些朋友问我有没有一些 Python 实战小案例。今天我整理排版了一遍,给大家分享一下。喜欢记得点赞、收藏、关注。 整理了60个Python小例子,拿来即用! 整理了60个 Py…

OpenCV-Python实战(1)——OpenCV简介与图像处理基础

OpenCV-Python实战(1)——OpenCV简介与图像处理基础 OpenCV介绍Python安装OpenCVOpenCV主要模块OpenCV应用场景 OpenCV图像处理基础图像基础图像处理中的主要问题图像处理流程 像素、颜色、通道、图像和颜色空间图像描述图像文件类型 OpenCV中的坐标系Op…

精选了20个Python实战项目(附源码),拿走就用!零基础练手不二项目!

Python是目前最好的编程语言之一。由于其可读性和对初学者的友好性,已被广泛使用。 那么要想学会并掌握Python,可以实战的练习项目是必不可少的。 接下来,我将给大家介绍20个非常实用的Python项目,帮助大家更好的学习Python。 …

精选了20个Python实战项目(附源码),拿走就用!

点击上方“Python爬虫与数据挖掘”,进行关注 回复“书籍”即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 昔闻洞庭水,今上岳阳楼。 大家好,我是小F。 Python是目前最好的编程语言之一。由于其可读性和对初学者的友好性,已被…

100个精选Python实战项目案例,送给缺乏练手经验的你

随着 Python 语言的流行,越来越多的人加入到了 Python 的大家庭中。为什么这么多人学 Python ?我要喊出那句话了:“人生苦短,我用 Python!”,正是因为语法简单、容易学习,所以 Python 深受大家喜…

python:实战篇

python 实战 python 实战篇 1、python解压1. python解压zip、7z2. python 解压rar1)windows:2)linux: 2、python执行Linux系统命令的3种方法3、python代码打包成exe安装包安装打包加密【附】 4、windows下:py文件引用其他py文件5、…

【No.2】CAS单点登录的原理分析

上一篇说了基于Cookie的单点登录的实现:http://blog.csdn.net/readiay/article/details/52814001,虽然他实现简单,但是也问题颇多。例如:用户名密码不停传送,增加了被盗号的可能。另外,不能跨域&#xff01…

CAS单点登入登出原理

CAS 集中式认证服务(Central Authentication Service,CAS),单点登录协议,允许一个用户访问多个应用程序,而只需要提供一次凭证。 具体实现框架有:OAuth2,Shiro等。 普通CAS1.0 登入详细流程 流程解析&a…

SSO单点登录原理剖析

转载于:http://www.cnblogs.com/gxbk629/p/4473569.html CAS实现SSO单点登录原理 1. CAS 简介 1.1. What is CAS ? CAS ( Central Authentication Service ) 是 Yale 大学发起的一个企业级的、开源的项目,旨…

cas跨域单点登录原理

相同域名下实现单点登录太简单,因为A系统和B系统域名相同,在访问A时候登录过,在访问B时,由于域名相同,浏览器会带上cookies,cookies里有票据信息,访问B自然就不用再登录了。 可是如果A系统和B系…

CAS单点登录原理分析(二)

这篇文章对CAS单点登录具体实现的一些步骤就行讲述,至于CAS单点登录的实现原理分析,请参看下面这篇文章: CAS单点登录原理分析(一) https://blog.csdn.net/qq_41258204/article/details/84036875 CAS 包含两个部分: CAS Server …

CAS-5.2.6单点登录-退出原理

退出原理流程图: cas的退出有三种模式: NONE:不支持单点登录BACK_CHANNEL:隐式退出(默认)FRONT_CHANNEL:显式退出 参数说明 参考官网地址 https://apereo.github.io/cas/5.2.x/installation…

CAS实现单点登录原理与实例解析

上几篇博客介绍了使用cookie实现同域和跨域系统的单点登录,本文将介绍通过CAS实现单点登录实例。 CAS是由耶鲁大学研发的单点登录服务器,主要分为服务端和客户端两个系统模块;本文将通过官网提供的实例进行介绍。 一、CAS实现SSO的原理与认…