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

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


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

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

python 复制代码
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 表格异步接口识别图片

python 复制代码
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)

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

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

python 复制代码
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


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