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

[特殊字符] 从图片自动生成 Excel:Python 批量 OCR 表格识别实战

这篇文章将展示如何使用 Python 调用百度 OCR 表格识别接口,批量处理目录下所有图片,自动识别表格并生成与图片同名的 Excel 文件。适用于文档扫描、图片表格整理、图像归档等场景。


1️⃣ 批量获取所有待识别图片路径

使用 os.walk() 遍历指定目录及子目录,将所有图片路径加入 pictures 列表:

import oswork_path = "图片\\"
pictures = []for root, dirs, files in os.walk(work_path):paths = [os.path.join(root, name) for name in files]pictures.extend(paths)
  • os.walk() 支持遍历子目录;

  • 将完整路径保存在列表中,后续批量处理更方便。


2️⃣ 调用百度 AipOcr 表格异步接口识别图片

from aip import AipOcr
import time, requestsclient = AipOcr(APP_ID, API_KEY, SECRET_KEY)for picture in pictures:img = open(picture, 'rb').read()table = client.tableRecognitionAsync(img)req_id = table['result'][0]['request_id']# 等待识别完成result = client.getTableRecognitionResult(req_id)while result['result']['ret_msg'] != '已完成':time.sleep(2)result = client.getTableRecognitionResult(req_id)download_url = result['result']['result_data']excel_name = f"{os.path.splitext(picture)[0]}.xls"resp = requests.get(download_url)with open(excel_name, 'wb') as f:f.write(resp.content)

 

  • 使用 tableRecognitionAsync() 异步调用,适合处理表格类图片 cloud.baidu.com+7ai.baidu.com+7blog.csdn.net+7zhuanlan.zhihu.com+1blog.csdn.net+1;

  • 使用 getTableRecognitionResult() 查询状态,循环等待识别完成;

  • 下载自动生成的 Excel,文件名统一,方便查看。


3️⃣ 📌 实时监控进度提示(补充建议)

为了批量处理时能实时了解进展,可添加进度条提示:

import tqdmfor picture in tqdm.tqdm(pictures, desc="识别进度"):...

tqdm 是 Python 终端常用的美观进度条库。


🖼️ 结果展示区

✅ 使用心得与注意点

项目说明
免费额度表格 OCR 每日免费次数有限 learn.microsoft.com+2blog.csdn.net+2cnblogs.com+2
异步获取使用了百度 OCR 异步接口高效处理表格
质量控制对复杂图片识别效果可能有差异,可添加错误重试机制
扩展建议支持批量重命名文件、错误日志保存、Excel 自动合并


🔧 下一步扩展方向

  • 增加压缩与缩略图处理功能,提前调整图片大小再上传;

  • 识别结果整理与入库,批量导入数据库、合并汇总表;

  • 加入 GUI 界面,方便非编程用户操作;

  • 处理多种 OCR 模式,如通用文字识别、银行卡识别等。

  更多实用案例,代码,素材如下:

自取链接:https://pan.quark.cn/s/a46f30accea2


如果你对这篇批量识别实用脚本满意,可以点赞收藏 ✔,并欢迎告诉我你想做的新功能或场景,我可以继续帮你完善这套自动化工具!

 

 

 

http://www.lryc.cn/news/579359.html

相关文章:

  • 高压电缆护层安全的智能防线:TLKS-PLGD 监控设备深度解析
  • Redis 消息的发布和订阅
  • C++11 shared_ptr 原理与详细教程
  • 算法分析的系统性总结
  • FFmpeg开发笔记(七十七)Android的开源音视频剪辑框架RxFFmpeg
  • Python 物联网(IoT)与边缘计算开发实战(1)
  • 基于多线程实现链表快排
  • 如何有效的开展接口自动化测试?
  • Linux之Socket 编程 UDP
  • C++ 项目实践:如何用对象池优化内存管理、解决 MISRA 报警
  • 制作一款打飞机游戏76:分数显示
  • CentOS系统高效部署fastGPT全攻略
  • Android音视频探索之旅 | CMake基础语法 创建支持Ffmpeg的Android项目
  • 电脑CPU使用率占用100%怎么办 解决步骤指南
  • 按键精灵 安卓脚本开发:游戏实战之自动切换账号辅助工具
  • 需要scl来指定编译器的clangd+cmake在vscode/cursor开发环境下的配置
  • reactnative页面适配UI设计尺寸px转dp的完美解决方案px2dp
  • 9.Docker的容器数据卷使用(挂载)
  • CAD2018,矩形设计,新增文字,块新增与打散
  • snail-job的oracle sql(oracle 11g)
  • OFD|WPS|PDF 文档在线预览-高级功能
  • 前置代理重构网络访问的「中转站」
  • AI大模型的技术演进、流程重构、行业影响三个维度的系统性分析
  • 嵌入式系统中实现串口重定向
  • DMN方式的特点
  • 《P2572 [SCOI2010] 序列操作》
  • maker-pdf 文档文字识别,并用python实现
  • 专题:2025即时零售与各类人群消费行为洞察报告|附400+份报告PDF、原数据表汇总下载
  • 2025年6月:技术探索与生活平衡的协奏曲
  • 从零开始构建Airbyte数据管道:PostgreSQL到BigQuery实战指南