你好,我在尝试用百度OCR电影字幕截图,在网上找一些代码尝试,没成功,后来找到《Python环境下百度Ocr表格批量识别》https://jingyan.baidu.com/article/c1a3101ef9131c9e646deb5c.html,使用上面分享的代码成功OCR输出Excel文件,但受到“百度表格文字识别每天50次免费”限制,其实我只需OCR成txt即可(网络图片文字识别背景复杂图片可以每天500次),由于刚接触Python,研究了大半天还是不会修改那些代码,所以只好求助于各位大神,请帮忙将代码修改成"网络图片文字识别"为txt文本文件输出,比如A.jpeg、B.jpeg、C.jpeg、D.jpeg...识别后输出为A.txt、B.txt、C.txt、D.txt...(也就是txt文件名按原图片文件名命名不变),谢谢
参考代码:(Python对代码行缩进要求比较高,复制下列的代码请注意这一点)
# ----------------------------------------
# Python环境下百度Ocr表格批量识别
# Email:fryflying@outlook.com
# ----------------------------------------
import os #加载操作系统模块
from aip import AipOcr #调用百度Ocr模块
import requests #调用反馈模块
import time #调用时间模块
import tkinter as tk #调用GUI图形模块
from tkinter import filedialog
#KEY信息,请输入自己申请的应用信息
APP_ID = '1******5'
API_KEY = 'c****************************S'
SECRET_KEY = 'N**************************************G'
client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
#读取文件函数(返回读取结果)
def get_file_content(filePath):
with open(filePath, 'rb') as fp:
return fp.read()
#文件下载函数
def file_download(url, file_path):
r = requests.get(url)
with open(file_path, 'wb') as f:
f.write(r.content)
root = tk.Tk()
root.withdraw()
data_dir = filedialog.askdirectory(title='请选择图片文件夹')+'/' #用对话框选择图片存储文件夹
result_dir = filedialog.askdirectory(title='请选择输出文件夹')+'/' #自选输出文件夹
num = 0
for name in os.listdir(data_dir):
print('{0}: {1} 正在处理:'.format(num+1, name.split('.')[0]))
image = get_file_content(os.path.join(data_dir,name)) #调用读取图片子程序
res = client.tableRecognitionAsync(image) #调用表格文字识别
req_id = res['result'][0]['request_id'] #获取识别ID号
for count in range(1,10): #OCR识别也需要一定时间,设定10秒内每隔1秒查询一次
res = client.getTableRecognitionResult(req_id) #通过ID获取表格文件XLS地址
print(res['result']['ret_msg'])
if res['result']['ret_msg'] == '已完成':
break #云端处理完毕,成功获取表格文件下载地址,跳出循环
else:
time.sleep(1)
url = res['result']['result_data']
xls_name = name.split('.')[0] + '.xls'
file_download(url, os.path.join(result_dir, xls_name)) #调用文件下载子程序
num = num + 1
print('{0}: {1} 下载完成。'.format(num, xls_name))
time.sleep(1)
没看懂啥要求