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

2023-11-11

一、前言

​  一位在校当老师的同学遇到了一个需求,学生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)
                    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公众号,学习更多技术干货,对你有帮助请点个赞,感谢各位帅哥美女。`

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐

  • 解压后还原jar包

    解压后还原jar包 记一次 jar 包还原 JAR 文件就是 Java Archive Java 档案文件 它是 Java 的一种文档格式 JAR 文件非常类似 ZIP 文件 准确的说 它就是 ZIP 文件 所以叫它文件包 JAR 文件与
  • vue-charts 的图片自定义导出

    chart 图
  • [YOLO专题-27]:YOLO V5 小目标检测遇到的问题与常见解决办法

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 122348281 目录 第1章 前言
  • 使用android studio进行springboot项目的开发

    B站视频 Step 1 Modify build gradle Module Dir apply plugin org springframework boot apply plugin java dependencies implemen
  • MATLAB—医学图像读取(1)

    基于matlab的医学图像处理 图像读取 1 1 一般图像读取 2 医学图像读取操作 图像读取 1 1 一般图像读取 imread指令 读取图像文件 BMP GIF PNG JPEG and TIFF imshow指令 显示图像 imwri
  • 逆向爬虫26 各种加密逻辑

    逆向爬虫26 各种加密逻辑 一 什么是加密 加密就是输入一段得懂的东西 明文 通过一系列数学算法加工后 输出一段看不懂的东西 密文 二 为什么要加密 什么情况下需要加密 当我们想在网络上传输私密数据时 就需要用到加密 加密可以使数据变得更安
  • 从事研发管理的心得

    从事管理工作的心得 前言 职业生涯中 从技术走向管理似乎已成为普遍并达成共识的职业规划套路 但要完成这样的转变过程是需要一定的思考的 它肯定不会也不应该如同开关切换一样简单 因为在技术与管理之间肯定不是断崖 即使是也应该有一个安全可靠且宽阔
  • 芯片封装测试流程详解,一文带你了解清楚

    芯片封装是指芯片在框架或基板上布局 粘贴固定和连接 经过接线端后用塑封固定 形成立体结构的工艺 下面就带大家来了解一下芯片封装 什么是芯片 想要了解芯片封装测试 首先应该了解芯片 芯片其实是半导体元件产品的统称 很多时候我们把集成电路 In
  • [jQuery自定义插件] 2 自定义消息弹窗插件-jQueryToast

    用多了市面上的各种ui框架 各种的消息弹窗类型 我选择其中的一种 我觉得比较好看的 去模仿实现了 先上源码 再解释 目录结构 1 jQueryToast css ftoast position fixed top 0 width 351px
  • [Hive]一篇带你读懂Hive是什么

    作者简介 大家好 我是Philosophy7 让我们一起共同进步吧 个人主页 Philosophy7的csdn博客 系列专栏 哲学语录 承认自己的无知 乃是开启智慧的大门 如果觉得博主的文章还不错的话 请点赞 收藏 留言 支持一下博 gt
  • 组合优化问题求解算法思路的整理(VRP、SDVRP,container loading)

    一 技术背景与合作的必要性 解决合作问题现有的技术路线 挑战与不足 拟采用的技术路线 合作引进 这种技术的有益效果 缺 求解组合优化问题可以通过利用各种数学方法 寻找离散事件的最优编排 分组 次 序或筛选等 目前常用的优化算法可以分为以下四
  • 【LaTeX 教程】04. LaTeX 插入数学公式与符号

    LaTeX 教程 04 LaTeX 插入符号与数学公式 LaTeX 公式 我将把握最近文章里用到的数学公式格式都放上来供大家参考学习 首先 最简单的数学模式 xxx 一个 符号 中间的内容是行内模式 xxx 两个 符号 中间的内容是行间模式
  • 使用wxml2canvas将微信小程序页面转为图片

    最近有个微信小程序项目 需要将页面转为图片 微信小程序提供的Api是wx canvasToTempFilePath 这个方法是将画布指定区域的内容导出生成指定大小的图片 但是我们是将页面导出图片 所以可以使用wxml2canvas解决 1
  • WINRAR常用命令

    这段时间因为工作的需要 研究了一下关于WINRAR的操作 一下是关于它的一些常用命令 一 压缩命令1 将temp txt压缩为temp rarrar a temp rar temp txt 2 将当前目录下所有文件压缩到temp rarra
  • 编程器烧写NAND flash的一些说明

    注意事项 1 大小端模式 也即在使用编程器时需不需要做字节反序 2 Spare area处理方式 需要还是不需要 是否含有私有ECC算法 3 坏块处理方式 摘要一段说明如下 虽然针对西尔特SUPERPRO 9000U的文章 但也对许多其他的
  • ERROR: Failed to parse POMs org.apache.maven.project.ProjectBuildingException: Some problems were en

    问题 ERROR Failed to parse POMs org apache maven project ProjectBuildingException Some problems were encountered while pro
  • 数据分析毕业设计 全国疫情数据分析与3D可视化 - python 大数据

    文章目录 0 前言 1 课题背景 2 实现效果 3 设计原理 4 部分代码 0 前言 这两年开始毕业设计和毕业答辩的要求和难度不断提升 传统的毕设题目缺少创新和亮点 往往达不到毕业答辩的要求 这两年不断有学弟学妹告诉学长自己做的项目系统达不
  • Java入门之二维向量定义及相加

    6 2 二维向量定义及相加 Java 10 分 裁判测试程序样例中展示的是一段二维向量类TDVector的定义以及二维向量求和的Java代码 其中缺失了部分代码 请补充完整 以保证测试程序正常运行 函数接口定义 提示 需要补充的成员方法有
  • 最优解算法的讨论

    不懂优化的人希望能有通用的方法来解决他手头的问题 但不幸的事没有这种方法存在 快速的方法都需要某些条件 比如常见的有强凸 线性 可分解啥的 目前研究的比较成熟的就是强凸光源可分解 非凸没有特别有效的方法来解 如果是强凸的 何必用那么复杂的方
  • python实战-读取xlsx表格批量替换文件名

    文章目录 一 前言 二 解决思路 三 具体代码实现 四 总结 一 前言 一位在校当老师的同学遇到了一个需求 学生1寸照片是以学生姓名命名 现在需要重命名1寸照片 重命名为exel里对应的学生姓名的身份证号码 我心想这个需求很容易实现 照片有