当前位置: 首页 > news >正文

图片重命名

功能需求

python代码,功能是将一个文件夹中的所有照片重命名为身份证号命名,身份证的最后一个字母如果为小写的x,请重新改为大写的X。源文件夹中的照片的命名方式是姓名身份证号。照片的路径为:C:\Users\XuZhenZhong\Desktop\23计3学测照片\新建文件夹下,请将输出结果保存到同级目录下,并将文件夹名修改为23计3修改后。

下面展示一些 内联代码片

import os
import shutil
import redef rename_photos_by_id(source_folder, dest_folder):"""从“姓名身份证号.扩展名”格式的文件名中提取身份证号并重命名照片处理身份证号末尾小写x为大写X,保存到目标文件夹参数:source_folder: 源照片文件夹路径dest_folder: 处理后照片保存路径"""# 支持的常见图片格式image_extensions = ('.jpg', '.jpeg', '.png', '.gif', '.bmp', '.tiff', '.webp')# 创建目标文件夹(不存在则创建)if not os.path.exists(dest_folder):os.makedirs(dest_folder)print(f"已创建目标文件夹: {dest_folder}")# 遍历源文件夹所有文件for filename in os.listdir(source_folder):source_path = os.path.join(source_folder, filename)# 跳过子文件夹,只处理文件if not os.path.isfile(source_path):print(f"跳过非文件: {filename}")continue# 跳过非图片文件if not filename.lower().endswith(image_extensions):print(f"跳过非图片文件: {filename}")continue# 提取文件名(不含扩展名)file_name_without_ext = os.path.splitext(filename)[0]file_ext = os.path.splitext(filename)[1]# 正则匹配18位身份证号(最后一位可能为数字或x/X)id_pattern = r'(\d{17}[\dXx])'id_match = re.search(id_pattern, file_name_without_ext)if not id_match:print(f"未从文件名中识别到身份证号,跳过: {filename}")continue# 提取并处理身份证号(小写x转大写X)id_number = id_match.group(1)if id_number[-1].lower() == 'x':id_number = id_number[:-1] + 'X'# 构建新文件名(身份证号.扩展名)new_filename = f"{id_number}{file_ext}"dest_path = os.path.join(dest_folder, new_filename)# 处理重名:若文件名已存在,添加序号(如123456789012345678X_1.jpg)counter = 1while os.path.exists(dest_path):new_filename = f"{id_number}_{counter}{file_ext}"dest_path = os.path.join(dest_folder, new_filename)counter += 1# 复制文件到目标文件夹(保留原文件,更安全)shutil.copy2(source_path, dest_path)print(f"已处理: {filename} -> {new_filename}")if __name__ == "__main__":# 源文件夹路径(您提供的路径)source_folder = r"C:\Users\XuZhenZhong\Desktop\23激光2班\23激光2班学测照片"# 目标文件夹路径(同级目录下的“23激光2班学测照片改”)parent_folder = os.path.dirname(source_folder)dest_folder = os.path.join(parent_folder, "23激光2班学测照片改")# 检查源文件夹是否存在if not os.path.exists(source_folder):print(f"错误:源文件夹 '{source_folder}' 不存在,请检查路径是否正确")else:rename_photos_by_id(source_folder, dest_folder)print("\n所有照片处理完成!结果已保存至: " + dest_folder)

文章转载自:

http://0gPQnJFC.ywqsk.cn
http://J0xhDppl.ywqsk.cn
http://HGESjM7h.ywqsk.cn
http://zfZ7lXCL.ywqsk.cn
http://6KO2yVZo.ywqsk.cn
http://fXF13YqP.ywqsk.cn
http://jAm1KAaC.ywqsk.cn
http://7DwH7XkD.ywqsk.cn
http://vOwnZtiS.ywqsk.cn
http://Z6w41TJm.ywqsk.cn
http://vv68E1tE.ywqsk.cn
http://4rHCsfV2.ywqsk.cn
http://thaDn1du.ywqsk.cn
http://prxCAVpw.ywqsk.cn
http://ciDc3qIC.ywqsk.cn
http://vxQjF3zr.ywqsk.cn
http://cVTSqMVv.ywqsk.cn
http://wOmFI7HK.ywqsk.cn
http://NgigHujX.ywqsk.cn
http://QlZ2FOL9.ywqsk.cn
http://d6GyD8lP.ywqsk.cn
http://tUw0aIe8.ywqsk.cn
http://QrdkFJHs.ywqsk.cn
http://m06XR0cV.ywqsk.cn
http://xuyKNHBj.ywqsk.cn
http://zMIah3oZ.ywqsk.cn
http://Yj50bKwe.ywqsk.cn
http://ufDishr4.ywqsk.cn
http://G0ouzgko.ywqsk.cn
http://HcNGLY00.ywqsk.cn
http://www.dtcms.com/a/386803.html

相关文章:

  • 同网段通信ARP
  • WWDC25 苹果开发武林圣火令挑战:探索技术前沿,聆听创新故事
  • 深度解析大模型服务性能评测:AI Ping平台助力开发者精准选型MaaS服务
  • Blender 了解与学习
  • AI语音电话语音机器人的优点和缺点分别是什么?
  • 【阿里云PAI平台】 如何在Dify调用阿里云模型在线服务 (EAS)
  • 省钱自学版一次过阿里云ACP!!!
  • 建立了 abc 联合索引,where a = ? and b = ? order by c 能命中索引吗?
  • 携程线下面试总结
  • 【数据工程】9. Web Scraping 与 Web API
  • Vue3 emit和provide
  • linux C 语言开发 (十二) 进程间通讯--消息队列
  • 报考湖北安全员A证需要哪些条件?
  • olap和oltp类业务
  • 14个免费的DEM数据源
  • 单时段机组组合优化的粒子群算法实现(MATLAB)
  • MATLAB实现语音去混响与去噪
  • 启发式搜索--模拟退火算法 matlab
  • 论文阅读:arixv 2025 One Token to Fool LLM-as-a-Judge
  • 【C++入门】C++基础
  • 10 正则表达式
  • 本地文件->RTSP->HLS->网页播放
  • 148.排序链表,23.合并K个升序链表
  • 思特威CMOS sensor rbrow寄存器设置需要注意的事项(二)
  • 物联网精准节能平台:工厂“数字大脑”如何让节能更智能?
  • Java进阶教程,全面剖析Java多线程编程,实现Callable接口实现多线程,笔记05
  • Windows Server Web 服务器安全防护(开放 HTTP端口,限制恶意 IP)
  • 深度学习:从预备知识到未来展望
  • 数据库(五)MySQL的数据备份
  • linux的tar命令详细使用