umi-ocr识别文件夹所有文件并导入数据库

2024-04-05 21:28

本文主要是介绍umi-ocr识别文件夹所有文件并导入数据库,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近有个需求是识别身份证所有信息。所以调用umi-ocr接口并写入mysql

import os
import glob
from time import sleep
import requests
import json
import pymysql
import tkinter as tk
from tkinter import ttkfrom sympy import truedef write_to_database(image_path, response_text, db_config):with pymysql.connect(**db_config) as conn:with conn.cursor() as cursor:sql = "INSERT INTO image_records (path, text) VALUES (%s, %s)"cursor.execute(sql, (image_path, response_text))conn.commit()def get_image_paths(directory, extensions=['.jpg', '.png']):image_paths = []for ext in extensions:pattern = os.path.join(directory, f'*{ext}')image_paths.extend(glob.glob(pattern))return image_pathsdef send_http_post_request(url, data, headers=None, auth=None):default_headers = {'Content-Type': 'application/json'}if headers is not None:headers = {**default_headers, **headers}else:headers = default_headersjson_data = json.dumps(data)response = requests.post(url, data=json_data, headers=headers, auth=auth)return responsedef returndata(directory, db_config):# 使用os.walk遍历目录for root, dirs, files in os.walk(directory):for filename in files:sleep(0.2)# 构建完整的文件路径file_path = os.path.join(root, filename)# 准备发送的数据post_data = ["--path", file_path]try:# 发送HTTP POST请求response = send_http_post_request("http://127.0.0.1:1224/argv", post_data)# 获取响应文本并替换换行符response_text = response.text.replace('\n', ',').replace('\t','')# 将响应写入数据库write_to_database(file_path, response_text, db_config)except Exception as e:# 打印异常信息,或者根据需要处理异常print(f"Error processing file {file_path}: {e}")return truedef on_click():global entry_directorydirectory = entry_directory.get()db_host = '127.0.0.1'db_port = 3306db_user = 'root'db_password = '123456'db_name = 'xxxxx'db_config = {'host': db_host,'port': db_port,'user': db_user,'password': db_password,'db': db_name}status = returndata(directory, db_config)if status:window.destroy()def main():global windowwindow = tk.Tk()window.title("OCR识别导入")window.geometry("400x200")  # 设置窗口大小(可根据需要调整)# 添加标签和输入框label_directory = ttk.Label(window, text="请输入文件夹目录:", style="TLabel")label_directory.grid(row=0, column=0, padx=10, pady=(10, 5), sticky="w")global entry_directoryentry_directory = ttk.Entry(window, width=30, style="TEntry")entry_directory.grid(row=0, column=1, padx=(0, 10), pady=(10, 5), sticky="ew")# 添加执行按钮button_execute = ttk.Button(window, text="Execute", command=on_click, style="TButton")button_execute.grid(row=1, column=0, columnspan=2, padx=10, pady=10, ipadx=10, sticky="ew")window.mainloop()if __name__ == '__main__':main()

之后再利用

python -m pip install pyinstallerpython -m PyInstaller -F -w  --compress test.py 打包成可执行程序

这篇关于umi-ocr识别文件夹所有文件并导入数据库的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/878188

相关文章

Oracle数据库定时备份脚本方式(Linux)

《Oracle数据库定时备份脚本方式(Linux)》文章介绍Oracle数据库自动备份方案,包含主机备份传输与备机解压导入流程,强调需提前全量删除原库数据避免报错,并需配置无密传输、定时任务及验证脚本... 目录说明主机脚本备机上自动导库脚本整个自动备份oracle数据库的过程(建议全程用root用户)总结

虚拟机Centos7安装MySQL数据库实践

《虚拟机Centos7安装MySQL数据库实践》用户分享在虚拟机安装MySQL的全过程及常见问题解决方案,包括处理GPG密钥、修改密码策略、配置远程访问权限及防火墙设置,最终通过关闭防火墙和停止Net... 目录安装mysql数据库下载wget命令下载MySQL安装包安装MySQL安装MySQL服务安装完成

MySQL进行数据库审计的详细步骤和示例代码

《MySQL进行数据库审计的详细步骤和示例代码》数据库审计通过触发器、内置功能及第三方工具记录和监控数据库活动,确保安全、完整与合规,Java代码实现自动化日志记录,整合分析系统提升监控效率,本文给大... 目录一、数据库审计的基本概念二、使用触发器进行数据库审计1. 创建审计表2. 创建触发器三、Java

SQL server数据库如何下载和安装

《SQLserver数据库如何下载和安装》本文指导如何下载安装SQLServer2022评估版及SSMS工具,涵盖安装配置、连接字符串设置、C#连接数据库方法和安全注意事项,如混合验证、参数化查... 目录第一步:打开官网下载对应文件第二步:程序安装配置第三部:安装工具SQL Server Manageme

C#连接SQL server数据库命令的基本步骤

《C#连接SQLserver数据库命令的基本步骤》文章讲解了连接SQLServer数据库的步骤,包括引入命名空间、构建连接字符串、使用SqlConnection和SqlCommand执行SQL操作,... 目录建议配合使用:如何下载和安装SQL server数据库-CSDN博客1. 引入必要的命名空间2.

SpringBoot+EasyExcel实现自定义复杂样式导入导出

《SpringBoot+EasyExcel实现自定义复杂样式导入导出》这篇文章主要为大家详细介绍了SpringBoot如何结果EasyExcel实现自定义复杂样式导入导出功能,文中的示例代码讲解详细,... 目录安装处理自定义导出复杂场景1、列不固定,动态列2、动态下拉3、自定义锁定行/列,添加密码4、合并

Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式

《Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式》本文详细介绍如何使用Java通过JDBC连接MySQL数据库,包括下载驱动、配置Eclipse环境、检测数据库连接等关键步骤,... 目录一、下载驱动包二、放jar包三、检测数据库连接JavaJava 如何使用 JDBC 连接 mys

MySQL数据库中ENUM的用法是什么详解

《MySQL数据库中ENUM的用法是什么详解》ENUM是一个字符串对象,用于指定一组预定义的值,并可在创建表时使用,下面:本文主要介绍MySQL数据库中ENUM的用法是什么的相关资料,文中通过代码... 目录mysql 中 ENUM 的用法一、ENUM 的定义与语法二、ENUM 的特点三、ENUM 的用法1

Java easyExcel实现导入多sheet的Excel

《JavaeasyExcel实现导入多sheet的Excel》这篇文章主要为大家详细介绍了如何使用JavaeasyExcel实现导入多sheet的Excel,文中的示例代码讲解详细,感兴趣的小伙伴可... 目录1.官网2.Excel样式3.代码1.官网easyExcel官网2.Excel样式3.代码

Java中调用数据库存储过程的示例代码

《Java中调用数据库存储过程的示例代码》本文介绍Java通过JDBC调用数据库存储过程的方法,涵盖参数类型、执行步骤及数据库差异,需注意异常处理与资源管理,以优化性能并实现复杂业务逻辑,感兴趣的朋友... 目录一、存储过程概述二、Java调用存储过程的基本javascript步骤三、Java调用存储过程示