在本教程中,我们将学习如何使用Python编写一个脚本,该脚本可以自动获取指定文件夹下的所有图片文件,并利用百度AI的文字识别服务将这些图片中的表格内容转换为Excel格式。这种功能在需要从大量图片中提取表格数据时非常有用。
教程概览
- 环境准备:安装所需Python库。
- 目录遍历:获取指定文件夹下的所有图片文件。
- 百度AI文字识别:使用百度AI进行图片中表格的文字识别。
- 数据提取与保存:将识别结果保存为Excel文件。
- 关键词总结:列出教程相关的高搜索量关键词。
- 生成配图:为教程创建一张21:9尺寸的配图。
1. 环境准备
首先,我们需要安装一些Python库:
os
:用于操作系统功能,如文件路径的遍历。aip
:百度AI的Python SDK,用于文字识别。requests
:用于发送网络请求,获取识别结果的下载链接。
可以使用pip命令安装aip
和requests
:
pip install baidu-aip requests
2. 目录遍历
import os
work_path = "图片\\"
pictures = []
for root, dirs, files in os.walk(work_path):
path = [os.path.join(root, name) for name in files]
pictures.extend(path)
这段代码会遍历work_path
指定的文件夹,并将所有文件的路径存储在pictures
列表中。
3. 百度AI文字识别
要使用百度AI的文字识别功能,需要先在百度AI平台注册并创建应用,获取APP_ID
、API_KEY
和SECRET_KEY
。
from aip import AipOcr
import time
APP_ID = '你的APP_ID'
API_KEY = '你的API_KEY'
SECRET_KEY = '你的SECRET_KEY'
client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
4. 数据提取与保存
遍历图片列表,对每张图片进行表格文字识别,并将结果保存为Excel文件。
import requests
for picture in pictures:
with open(picture, 'rb') as pic:
img = pic.read()
table = client.tableRecognitionAsync(img)
request_id = table['result'][0]['request_id']
result = client.getTableRecognitionResult(request_id)
while result['result']['ret_msg'] != '已完成':
time.sleep(2)
result = client.getTableRecognitionResult(request_id)
download_path = result['result']['result_data']
excel_name = picture.split(".")[0] + ".xls"
excel = requests.get(download_path)
with open(excel_name, 'wb') as file:
file.write(excel.content)