python实战-读取xlsx表格批量替换文件名
温馨提示:这篇文章已超过385天没有更新,请注意相关的内容是否还可用!
文章目录
- 一、前言
- 二、解决思路
- 三、具体代码实现
- 四、总结
一、前言
一位在校当老师的同学遇到了一个需求,学生1寸照片是以学生姓名命名,现在需要重命名1寸照片,重命名为exel里对应的学生姓名的身份证号码,我心想这个需求很容易实现,照片有上百近千张如果手动修改那是很痛苦很低效的,用python就能很轻松的解决这个问题。格式图片如下:
二、解决思路
学生图片都是以名字命名,所以要读取表格里的姓名列、证件号码列,然后读取目录下图片的名称与表格姓名列进行对比,对比成功就修改对应的证件号码。
三、具体代码实现
先安装一下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) continue except 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.data excel = args.excel getExcel(data, excel) except: pass 直接给代码的话他还需要安装python与相应的库,为了解决让他开箱即用的问题,用我们之前学的pyinstaller来打包成exe,这样就可以直接运行了。
pyinstaller -F modifyFileName.py
pyinstaller教学链接:
https://blog.csdn.net/syl321314362/article/details/127619571
最后运行结果:
四、总结
关注我,微信搜索艺说IT公众号,学习更多技术干货,对你有帮助请点个赞,感谢各位帅哥美女。`
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!








