这篇文章将展示如何使用 Python 调用百度 OCR 表格识别接口,批量处理目录下所有图片,自动识别表格并生成与图片同名的 Excel 文件。适用于文档扫描、图片表格整理、图像归档等场景。
1️⃣ 批量获取所有待识别图片路径
使用 os.walk()
遍历指定目录及子目录,将所有图片路径加入 pictures
列表:
import os
work_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, requests
client = 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 tqdm
for 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
如果你对这篇批量识别实用脚本满意,可以点赞收藏 ✔,并欢迎告诉我你想做的新功能或场景,我可以继续帮你完善这套自动化工具!