Python批量读取身份证信息录入系统和重命名

news2024/9/20 18:47:38

前言

大家好,

如果你对自动化处理身份证图片感兴趣,可以尝试以下操作:从身份证图片中快速提取信息,填入表格并提交到网页系统。如果你无法完成这个任务,我们将在“Python自动化办公2.0”课程中详细讲解实现整个过程。

实现过程概述:
模块与功能:

re 模块:用于从 OCR 识别出的文本中提取所需的信息。
日期模块:计算年龄。
pandas:处理和操作表格数据。
PaddleOCR:百度的 OCR 模块,适合中文文本识别。
concurrent.futures:实现并发处理,提高图片识别效率。请注意,CPU 性能较弱时,过多的并发可能导致识别不准确。
SimpleAutomation:封装了 Selenium 操作网页的功能,也可以直接使用 Selenium 实现网页自动化。
装饰器使用:

我们使用装饰器来分离代码逻辑,使代码更加清晰。装饰器可以用于日志记录、异常处理和函数计时等公共功能的重用。
过程安排:

批量处理:我们批量处理身份证图片,通过并发操作加快处理速度。
信息提取:利用 OCR 技术识别身份证中的文本信息,并使用正则表达式提取所需字段。
数据处理:使用 pandas 将提取的信息整理成表格。
信息提交:将处理后的数据填写到网页表单中,并提交。
这个过程涉及多个步骤和技术,代码需要经常编写和调试,以提高编程能

实现最终结果

需要把下面三张身份证,识别的文字,填入到对应下面的Excel 报表中。
并通过https://www.ztloo.com/profile__trashed/card/ 身份证录入页面,进行web自动化填入。

1. 导入所需库

logging: 标准库日志模块,用于记录日志信息。
os: 提供操作系统接口,主要用于文件路径操作。
re: 提供正则表达式支持,用于从文本中提取信息。
shutil: 提供高级文件操作功能,例如文件复制。
time: 提供时间相关功能,如延时。
datetime: 提供日期和时间处理功能。
loguru: 现代化的日志库,用于记录日志信息。
pandas: 提供数据结构和数据分析工具,用于处理和分析数据。
paddleocr: OCR 工具,用于文本识别。
concurrent.futures: 提供并发执行任务的功能。

2. 配置日志记录

设置了日志文件 ocr_task.log,并关闭了 PaddleOCR 的日志输出,以减少冗余日志信息。

3. OCRProcessor 类

3.1 初始化

init: 初始化 PaddleOCR 引擎和数据列表。

3.2 识别文本

recognize_text: 使用 PaddleOCR 对图片进行文本识别,返回识别的文本。

3.3 提取信息

extract_info: 使用正则表达式从识别的文本中提取身份证相关信息,包括姓名、性别、民族、出生日期、住址和身份证号码。

3.4 列出图片

list_images: 列出指定目录中的所有图片文件,支持 .png、.jpg、.jpeg 格式。

3.5 处理图片

process_img: 处理单张图片,进行 OCR 识别,提取信息并将结果记录到 self.data 列表中。

3.6 处理图片目录

process_imgs: 并行处理目录中的所有图片,使用 ThreadPoolExecutor 执行任务,并将处理结果保存在 ocr_results.xlsx 文件中。调用了 add_age_and_sort 方法对数据进行排序和添加年龄列。

3.7 计算年龄

calculate_age: 根据出生日期计算年龄。

3.8 添加年龄并排序

add_age_and_sort: 为数据添加年龄列,并按年龄从小到大排序。使用 pandas 处理数据。

3.9 重命名并保存图片

rename_and_save_images: 根据提取的身份证信息重命名图片,并保存到指定目录中。

3.10 处理和提交

process_and_submit: 执行完整的处理流程,包括初始化自动化工具、批量处理图片、重命名图片、提交信息到系统。使用 SimpleAutomation 进行网页操作,填写身份证系统表单。

3.11 提交信息到系统

write_idcard_system: 将提取的信息填写到身份证系统的表单中,包括姓名、性别、出生日期、地址、身份证号码。选择性别和民族选项,提交表单。

4. 使用示例

main 部分,创建了 OCRProcessor 实例,并调用 process_and_submit 方法处理指定目录下的图片并提交信息到系统。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2114248.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

教师节送什么礼物给老师好 送礼送什么显高档又实用

教师节送什么礼物给老师好 送礼送什么显高档又实用 教师节即将到来,许多学生和家长都在思考如何表达对老师的感激之情。选择一份合适的礼物不仅能够表达心意,还能让老师感受到学生的关心和尊重。那么,送什么礼物给老师既显高档又实用呢&#…

字节跳动笔试题:自动校对程序:解决王大锤的拼写错误

字节跳动面试题:自动校对程序:解决王大锤的拼写错误 引言问题描述数据范围输入输出描述算法与数据结构伪代码C 代码实现代码解释测试用例边界情况复杂度分析结论后记引言 王大锤,一个出版社的编辑,每天面对海量的英文稿件,不胜其烦。然而,凭借他蓝翔技校挖掘机和程序设计…

[情商-13]:语言的艺术:何为真实和真相,所谓真相,就是别人想让你知道的真相!洞察谎言与真相!

目录 前言: 一、说话的真实程度分级 二、说谎动机分级:善意谎言、中性谎言、恶意谎言 三、小心:所谓真相:只说对自己有利的真相 四、小心:所谓真相:就是别人想让你知道的真相 五、小心:所…

Redis 事务:支持回滚吗?深入解析

今天我们要来探讨一个关于 Redis 事务的重要问题:Redis 事务支持回滚吗?这个问题在 Redis 的使用中经常被提及,对于正确理解和使用 Redis 事务至关重要。那么,让我们一起深入解析这个问题吧! 一、Redis 事务简介 在了…

Linux命令分享 三 (ubuntu 16.04)

1、‘>’ >>输出重定向 用法:命令 参数 > 文件 ls > a.txt ‘>’ 将一个命令的结果不输出到屏幕上,输出到文件中,如果文件不存在就创建文件,如果存在就覆盖文件。 ls >> a.txt ‘>>’ 如果文件不存…

数据结构与算法02 - 复杂度

1、空间复杂度 空间复杂度指的是临时占用存储空间大小的量度;空间复杂度计算的是变量的个数,也采用大O渐进表示法;由于函数在运行的时候所需要的栈空间(存储参数、局部变量、一些寄存器信息等)在编译器已经确定好了&a…

BERN2(生物医学领域)命名实体识别与命名规范化工具

BERN2: an advanced neural biomedical named entity recognition and normalization tool 《Bioinformatics》2022 1 摘要 NER和NEN:在生物医学自然语言处理中,NER和NEN是关键任务,它们使得从生物医学文献中自动提取实体(如疾病…

modelsim仿真流程

modelsim仿真流程 1、建立工程 project new "../prj" test.mpf2、添加rtl文件 project addfile "../test.v" verilog3、建立仿真库 vlib work4、编译rtl到仿真库中 vlog -sv -sv09compat defineT133 incdir"../rtl" test.v -work work5、加载…

【Python】6.基础语法(6)文件

文章目录 1. 文件是什么2. 文件路径3. 文件操作3.1 打开文件3.2 关闭文件3.3 写文件3.4 读文件 4. 关于中文的处理5. 使用上下文管理器 1. 文件是什么 变量是把数据保存到内存中。如果程序重启/主机重启, 内存中的数据就会丢失。 要想能让数据被持久化存储, 就可以把数据存储…

openGauss 之索引回表

一. 前言 ​ 在openGauss中如果表有索引信息,查询的谓词条件中又包含索引列,openGauss支持通过索引信息快速拿到需要访问元组的位置信息,然后直接到该位置上取出元组数据,称之为回表查询。如下所示,利用索引索引…

JS中this指向问题

首先,this的绑定和定义的位置无关,它的指向只和调用方式有关,this只有在运行时才知道指向谁。 一,默认绑定 默认绑定,也可以说是独立函数调用,这时this指向window。 function foo() {console.log(this) …

DataGrip数据迁移

第一步 第二步 第三步 第四步 选择你刚刚到处的文件即可

海信发布以旧换新举措,补贴力度、补贴链路、服务体验全面升级

9月7日,由中国家用电器商业协会主办的“海信全国十城联动以旧换新”发布会在北京举行。 据「TMT星球」了解,活动以“品质换新就选海信”为主题,旨在贯彻政府加大消费品以旧换新的战略部署,为我国家电行业绿色化、智能化、高端化高…

知名AIGC人工智能专家培训讲师唐兴通谈AI大模型数字化转型数字新媒体营销与数字化销售

在过去的二十年里,中国企业在数字营销领域经历了一场惊心动魄的变革。从最初的懵懂无知到如今的游刃有余,这一路走来,既有模仿学习的艰辛,也有创新突破的喜悦。然而,站在人工智能时代的门槛上,我们不禁要问…

最厉害顶尖新媒体营销专家培训讲师唐兴通谈数字营销社群营销私域运营大客户销售AIGC大模型创新思维数字化转型商业模式短视频内容社私域数字经济人工智能

​数字人工智能时代的营销进化:从临摹到自我革新 引言:从模仿到变革的时代拐点 中国企业在过去的几十年里,经历了从电子商务的初兴到搜索引擎营销,再到微博、微信以及短视频等多种数字营销形式的迅速发展。在这个过程中&#xf…

力扣最热一百题——最大子数组和

目录 题目链接:53. 最大子数组和 - 力扣(LeetCode) 题目描述 示例 提示: 解法一:动态规划 举例分析 时间复杂度 Java写法: C写法: 优化 总结 题目链接:53. 最大子数组和 …

「数学::质数」试除法 / Luogu P5736(C++)

概述 在质数的第一节我们来讲解试除法。 质数是指在大于1的自然数中只能被1和它自己整除的数。 我们可以利用这一除法性质对质数进行判定。 Luogu P5736: 输入 n 个不大于 10^5 的正整数。要求全部储存在数组中,去除掉不是质数的数字,依…

012.Oracle-索引

我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈 入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈 虚 拟 环 境 搭 建 :👉&…

828华为云征文|华为云Flexus X实例docker部署rancher并构建k8s集群

828华为云征文|华为云Flexus X实例docker部署rancher并构建k8s集群 华为云最近正在举办828 B2B企业节,Flexus X实例的促销力度非常大,特别适合那些对算力性能有高要求的小伙伴。如果你有自建MySQL、Redis、Nginx等服务的需求,一定…

Differential Diffusion,赋予每个像素它应有的力量,以及在comfyui中的测试效果

🥽原论文要点 首先是原论文地址:https://differential-diffusion.github.io/paper.pdf 其次是git介绍地址:GitHub - exx8/differential-diffusion 感兴趣的朋友们可以自行阅读。 首先,论文开篇就给了一个例子: 我们的方…