今天,给大家分享橙子在实习的时候使用的利用Python和AIP对批量图片进行文字识别的小程序~
我们有很多时候需要对批量的文件进行批量的操作。那么,问题来了。批量说简单很简单,重复性的动作嘛。说难,不如说烦,真的很烦,耗时耗力。橙子记得之前给大家分享过一款截图立即就能进行文字翻译的软件。那么对付批量呢?今天的小程序绝对可以哦~
代码如下:
from aip import AipOcr
import os
import docx
# 定义常量
APP_ID = '********'
AIP_KEY = '************************'
SECRET_KEY = '*********************************'
client = AipOcr(APP_ID, AIP_KEY, SECRET_KEY)
""" 读取图片的方法"""
def get_file_content(filePath):
with open(filePath, 'rb') as fp:
return fp.read()
"""目录下的所有文件"""
def all_path(dir_name):
# 所有的文件
result = []
for main_dir, sub_dir, file_name_list in os.walk(dir_name):
# 当前主目录
print("1:", main_dir)
# 当前主目录下的所有目录
print("2:", sub_dir)
# 当前主目录下的所有文件
print("3:", file_name_list)
for file_name in file_name_list:
# 合并成一个完整路径
a_path = os.path.join(main_dir, file_name)
result.append(a_path)
# filelist = []
# for filename in os.listdir(dir_name):
# filelist.append(filename)
# print(filelist)
return result
if __name__ == "__main__":
result = all_path(r'你的图片的文件夹')
print(result)
# 创建内存中的word文档对象
file = docx.Document()
for i in result:
# i定义图片的绝对路径
image = get_file_content(i)
""" 调用通用文字识别(高精度版) """
img_info = client.basicAccurate(image) ##restu1字典类型
lists = img_info['words_result'] # 列表
for ls in lists:
print(ls['words'])
# 写入若干段落
file.add_paragraph(ls['words'])
# 保存文档
file.save("E:/Desktop/shiyan.docx")#识别后文字的存放处,可修改。
最后有一个小Tips:
一定要在Anaconda里面安装两个包:
更加全面步骤尽在公众号寻船人。公众号后台回复批量图片识别"即可获取代码及样例哦~
最后:
欢迎关注公众号寻船人,更多简便小工具小方法橙子都会在公众号分享。一起来寻找更简便的方法吧。