python提取图片中的文字写入excel文件,并打包为exe可执行文件

python提取图片数据写入excel,并打包为exe可执行文件

    • 1. 以下面的图片为例
    • 2. python环境需要的依赖包
    • 3. 创建交互式窗口
    • 4. 读取文件夹下的所有文件并提取数据
    • 5. 提取图片中字段的代码
    • 6. 打包代码为exe可执行文件
      • 安装打包依赖文件
      • 运行打包代码

1. 以下面的图片为例

在这里插入图片描述

2. python环境需要的依赖包

import os
import re
import pytesseract
from tkinter import Tk, filedialog
from PIL import Image, ImageOps
import pandas as pd

3. 创建交互式窗口

# 创建Tkinter窗口
root = Tk()
root.withdraw()  # 隐藏主窗口# 弹出选择文件夹对话框
folder_path = filedialog.askdirectory(title='选择图片文件夹')

4. 读取文件夹下的所有文件并提取数据

# 弹出选择文件夹对话框
folder_path = filedialog.askdirectory(title='选择图片文件夹')
# 配置Tesseract路径,如果已配置环境变量则可以省略这步
pytesseract.pytesseract.tesseract_cmd = r'D:\toolsoft\tesseractocr\tesseract.exe'
# 创建一个字典来存储数据
data = {'file name': [],'CBF<30% volume': [],'Tmax>6.0s volume': [],'Mismatch volume': [],'Mismatch ratio': []
}
# 如果用户取消选择,返回空路径
if not folder_path:print('未选择文件夹。')
else:print(f'选择的文件夹路径为:{folder_path}')# 遍历文件夹中的所有文件for filename in os.listdir(folder_path):file_path = os.path.join(folder_path, filename)if os.path.isfile(file_path):# 检查文件是否为图片文件(可以根据实际需求扩展这个条件)if filename.lower().endswith(('.png', '.jpg', '.jpeg', '.bmp', '.gif')):# 打开图片try:image = Image.open(file_path)# 处理图片,例如显示、保存或进行其他操作data = from_fig_get_txt(data, image)data['file name'].append(f"{filename}")# 例如,显示图片# image.show()# 或者进行其他处理,如图像处理、识别等# 这里可以添加你的其他代码逻辑except OSError:print(f'无法打开文件:{file_path}')# 使用pandas将数据写入Exceldf = pd.DataFrame(data)df.to_excel('output.xlsx', index=False)print('提取完成并已写入output.xlsx文件。')

5. 提取图片中字段的代码

def from_fig_get_txt(data, image):# 将彩色图像转换为灰度图像gray_image = ImageOps.grayscale(image)# 使用pytesseract提取图片中的文字text = pytesseract.image_to_string(gray_image, lang='eng')  # chi_sim使用简体中文,'eng'用于英文# 将提取的文字按要求分割或处理lines = text.split('\n')for i, line in enumerate(lines):if 'CBF<30% volume' in line.strip():  # 跳过空行# 使用正则表达式进行匹配# 匹配CBF后面的数据cbf_match = re.search(r'CBF<(\d+%) volume:\s*(\S+)\s*ml', line)if cbf_match:# cbf_percent = cbf_match.group(1)  # 提取CBF的百分比cbf_volume = cbf_match.group(2)  # 提取CBF的体积# print(f"CBF百分比: {cbf_percent}, CBF体积: {cbf_volume} ml")data['CBF<30% volume'].append(f"{cbf_volume} ml")if 'Tmax>6.0s volume' in line.strip():  # 跳过空行# 匹配Tmax后面的数据tmax_match = re.search(r'Tmax>([\d.]+)s.*?volume:\s*([\d.]+)\s*ml', line)if tmax_match:# tmax_value = tmax_match.group(1)  # 提取Tmax的数值tmax_volume = tmax_match.group(2)  # 提取Tmax的体积# print(f"Tmax数值: {tmax_value} s, Tmax体积: {tmax_volume} ml")data['Tmax>6.0s volume'].append(f"{tmax_volume} ml")if 'Mismatch volume' in line.strip():  # 跳过空行# 匹配Mismatch后面的数据Mis_match = re.search(r':\s*(.*)$', line)Mis_volume = Mis_match.group(1)  # 提取Tmax的体积# print(f"Tmax数值: {tmax_value} s, Tmax体积: {tmax_volume} ml")data['Mismatch volume'].append(f"{Mis_volume}")if 'Mismatch ratio' in line.strip():  # 跳过空行# 匹配Mismatch后面的数据Mis_ratio = re.search(r':\s*(.*)$', line)Mis_ratio = Mis_ratio.group(1)  # 提取Tmax的体积# print(f"Tmax数值: {tmax_value} s, Tmax体积: {tmax_volume} ml")data['Mismatch ratio'].append(f"{Mis_ratio}")return data

6. 打包代码为exe可执行文件

安装打包依赖文件

pip install pyinstaller

运行打包代码

pyinstaller --onefile yourpyfile.py

生成的 EXE 文件将在 dist 文件夹中

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

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

相关文章

入门Salesforce:必须掌握的20+基础专业术语!

Salesforce的发展令人印象深刻。在过去的20年中&#xff0c;Salesforce创建了一个由管理员、开发人员、顾问和用户组成的生态系统&#xff0c;不断颠覆创新CRM&#xff0c;促进平等和多样性。 作为初学者&#xff0c;探索Salesforce领域就像学习一门新语言。Salesforce中有着大…

YOLOv8改进 | 卷积模块 | 减少冗余计算和内存访问的PConv【CVPR2023】

秋招面试专栏推荐 &#xff1a;深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 &#x1f4a1;&#x1f4a1;&#x1f4a1;本专栏所有程序均经过测试&#xff0c;可成功执行&#x1f4a1;&#x1f4a1;&#x1f4a1; 专栏目录 &#xff1a;《YOLOv8改进有效…

Vue3详解

vite和webpack区别 vite vite使用原生ES模块进行开发&#xff0c;无需在编译时将所有代码转换为JS打包&#xff0c;从而提供了更快的热更新和自动刷新功能&#xff1b; vite在开发模式下没有打包步骤&#xff0c;而是利用浏览器的ES Module Imports特性实现按需编译&#xff…

Firefox 编译指南2024 Windows10篇- 编译Firefox(三)

1.引言 在成功获取了Firefox源码之后&#xff0c;下一步就是将这些源码编译成一个可执行的浏览器。编译是开发流程中的关键环节&#xff0c;通过编译&#xff0c;我们可以将源代码转换为可执行的程序&#xff0c;测试其功能&#xff0c;并进行必要的优化和调试。 对于像Firef…

git命令含有中文,终端输出中文乱码的问题

目录 1、[当前代码页] 的936 (ANSI/OEM - 简体中文 GBK) 是导致中文乱码的原因 2、这样会导致什么问题呢&#xff1f; (1) 问题一: 【属性】选项的【字体】无法识别自定义文字样式&#xff0c;【默认值】选项可选自定义字体样式&#xff0c;却无法覆盖【属性】选项 (2) 问题…

品牌推广怎么样?掌握正确做法,让品牌大放异彩!

品牌推广对于初创公司来说是一项至关重要的任务。在市场众多品牌中&#xff0c;如何脱颖而出&#xff0c;是每个品牌方都要考虑的问题。 作为一名手工酸奶品牌的创始人&#xff0c;目前全国复制了100多家门店&#xff0c;我来分享下&#xff0c;如何推广&#xff0c;可以让品牌…

通过shell脚本创建MySQl数据库

通过shell脚本创建数据库 #!/bin/bashserverIP10.1.1.196 SERVER_NAMEecho $serverIP | cut -d . -f4cat<<EOF>db.sql drop database if exists ${SERVER_NAME}_scheduler; drop database if exists ${SERVER_NAME}_kms; drop database if exists ${SERVER_NAME}_uim…

Centos7修改yum源

安装好系统后&#xff0c;网络能通信&#xff0c;源也没有配置&#xff0c;但是安装软件失败。 解决办法&#xff1a;配置阿里yum源 # curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo # yum clean all # yum make cache再次安装软…

二分查找1

1. 二分查找&#xff08;704&#xff09; 题目描述&#xff1a; 算法原理&#xff1a; 暴力解法就是遍历数组来找到相应的元素&#xff0c;使用二分查找的解法就是每次在数组中选定一个元素来将数组划分为两部分&#xff0c;然后因为数组有序&#xff0c;所以通过大小关系舍弃…

七天速通javaSE:第五天 数组基础

文章目录 前言一、认识数组二、数组的声明和创建1. 声明数组变量2. 创建数组3. 变量的初始化&#xff08;赋值&#xff09;3.1 静态初始化3.2 动态初始化 3. 示例 三、数组的使用1. 循环1.1 普通for循环1.2 For-Each 循环 2. 数组作为函数的参数和返回值 前言 本文将为大家介绍…

Win11 Python3.10 安装pytorch3d

0&#xff0c;背景 Python3.10、cuda 11.7、pytorch 2.0.1 阅读【深度学习】【三维重建】windows10环境配置PyTorch3d详细教程-CSDN博客 1&#xff0c;解决方法 本来想尝试&#xff0c;结果发现CUB安装配置对照表里没有cuda 11.7对应的版本&#xff0c;不敢轻举妄动&#x…

DP:子序列问题

文章目录 什么是子序列子序列的特点举例说明常见问题 关于子序列问题的几个例题1.最长递增子序列2.摆动序列3.最长递增子序列的个数4.最长数对链5.最长定差子序列 总结 什么是子序列 在计算机科学和数学中&#xff0c;子序列&#xff08;Subsequence&#xff09;是指从一个序列…

c语言的烫烫烫烫烫??

当初学习C语言时&#xff0c;对于一些特殊的打印输出可能会感到困惑&#xff0c;比如会出现一堆乱码烫烫烫的情况。其实这是因为在C语言中&#xff0c;对于字符类型和数字类型之间的隐式转换可能会导致打印输出的结果不符合预期。这并不意味着程序员"烫"&#xff0c;…

[激光原理与应用-96]:激光器研发与生产所要的常见设备(大全)与仪器(图解)

目录 一、激光器制造设备 二、测试与校准设备 2.1 光功率计&#xff1a; 1、工作原理 2、主要功能 3、应用场景 4、测量方法 5、总结 2.2. 激光束质量分析仪&#xff1a; 1、概述 2、主要功能和特点 3、工作原理 4、常见品牌和型号 5、应用领域 6、总结 2.3 光…

基于大数据架构的情感分析

1 项目介绍 1.1 研究目的和意义 随着大数据时代的到来&#xff0c;电影产业积累了海量的用户评论数据&#xff0c;这些数据中蕴含着观众的情感倾向与偏好信息&#xff0c;为电影推荐和市场策略制定提供了宝贵资源。然而&#xff0c;如何高效地从这浩瀚的数据海洋中提炼出有价…

QT5:在窗口右上角显示图标

目录 一、环境与目标 二、实现逻辑&#xff08;纯代码&#xff09;与效果 三、参考代码 四、总结 一、环境与目标 qt版本&#xff1a;5.12.7 windows 11 下的 Qt Designer &#xff08;已搭建&#xff09; 目标&#xff1a;使用嵌套布局的方式将两个按钮显示在窗口右上角…

《大海》这歌为何经久不衰?你看歌词写的多美妙!

《大海》这歌为何经久不衰&#xff1f;你看歌词写的多美妙&#xff01; 《大海》是一首由陈大力作词&#xff0c;陈大力、陈秀男作曲&#xff0c;Ricky Ho编曲&#xff0c;张雨生演唱的国语流行歌曲。该曲收录在张雨生1992年11月30日由飞碟唱片发行的同名专辑《大海》中。 作为…

【JavaEE精炼宝库】多线程进阶(2)synchronized原理、JUC类——深度理解多线程编程

一、synchronized 原理 1.1 基本特点&#xff1a; 结合上面的锁策略&#xff0c;我们就可以总结出&#xff0c;synchronized 具有以下特性(只考虑 JDK 1.8)&#xff1a; 开始时是乐观锁&#xff0c;如果锁冲突频繁&#xff0c;就转换为悲观锁。 开始是轻量级锁实现&#xff…

广州外贸建站模板

Yamal外贸独立站wordpress主题 绿色的亚马尔Yamal外贸独立站wordpress模板&#xff0c;适用于外贸公司建独立站的wordpress主题。 https://www.jianzhanpress.com/?p7066 赛斯科Sesko-W外贸建站WP主题 适合机械设备生产厂家出海做外贸官网的wordpress主题&#xff0c;红橙色…

Dify自定义工具例子

1.天气&#xff08;JSON&#xff09; {"openapi": "3.1.0","info": {"title": "Get weather data","description": "Retrieves current weather data for a location.","version": "v1…