只需把图片或者截图放到fileDir目录中就可以提取图片的内容
import os
import time
import pyperclip
from aip import AipOcr
def init():
APP_ID = "21197258"
API_KEY = "2nh0SuB0Z1zbZFtR6mfATYVb"
SECRET_KEY = "rwXvvdP1iufWGhWGWFfwp0oSPE2gDTfN"
aipOcr = AipOcr(APP_ID, API_KEY, SECRET_KEY)
return aipOcr
def get_file_content(filePath):
with open(filePath, 'rb') as fp:
return fp.read()
def result(filePath, options):
result = ""
try:
data = aipOcr.basicGeneral(get_file_content(filePath), options)
except:
raise ConnectionError("网络连接异常!")
words_result = data['words_result']
for i in range(len(words_result)):
result += words_result[i]['words']
pyperclip.copy(result)
if __name__ == '__main__':
"""存放要识别照片的目录"""
fileDir = r"/Users/jeffrey/screen"
"""只需要的文件类型"""
fileType = ["png", "jpg", "bmp"]
"""刷新间隔秒数"""
waitTime = 2
"""定义参数变量"""
options = {
'detect_direction': 'true',
'language_type': 'CHN_ENG',
}
"""获取指定目录下的文件,第一次运行不会处理这些文件"""
oldPhotoList = os.listdir(fileDir)
while True:
time.sleep(waitTime)
newPhotoList = os.listdir(fileDir)
"""利用set集合不可重复性获取不一致的信息"""
diffList = list((set(oldPhotoList) ^ set(newPhotoList)))
if len(diffList) >= 1:
for i in diffList:
oldPhotoList.append(i)
diffList.remove(i)
target = fileDir + os.sep + i
if not os.path.exists(target):
print("文件不存在")
continue
if os.path.splitext(target)[-1].replace(".", "") not in fileType:
print("这不是一张图片")
continue
aipOcr = init()
result(target, options)
print("已将结果复制到粘贴板")
pass
# >>> conda initialize >>>
# 切换到python38
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/Users/jeffrey/opt/miniconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "/Users/jeffrey/opt/miniconda3/etc/profile.d/conda.sh" ]; then
. "/Users/jeffrey/opt/miniconda3/etc/profile.d/conda.sh"
else
export PATH="/Users/jeffrey/opt/miniconda3/bin:$PATH"
fi
fi
unset __conda_setup
conda activate py38
cd /Users/jeffrey/Desktop/快捷脚本/py
python OCR图片识别.py```