python:全免费使用对文件夹中图片进行99%识别率的ocr

查看 86|回复 9
作者:zjg121   
1.所有图片放在D:\a\a文件夹中;2.十秒内完成微信扫码登录腾讯云;3识别结果放在d:\c\a.docx(事先手动新建该文件)文件中。
[Python] 纯文本查看 复制代码from selenium import webdriver
from selenium.webdriver.common.by import By
from time import sleep
from pywinauto import Application
from docx import Document
import os
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
file_path = r'D:\c\a.docx'  # 使用原始字符串来避免转义问题
# 打印文件路径,以便检查
print(file_path)
try:
    doc = Document(file_path)
    print('文档加载成功。')
    # 你的其他操作
except FileNotFoundError:
    print("文件未找到,请检查文件路径是否正确。")
folder_path = r'D:\a\a'  # 使用原始字符串,确保路径正确
'''try:
    files = [f for f in os.listdir(folder_path) if os.path.isfile(os.path.join(folder_path, f))]
    # 你的其他操作
except FileNotFoundError:
    print(f"找不到指定的路径:{folder_path}")'''
driver = webdriver.Edge()
driver.maximize_window()
driver.get('https://cloud.tencent.com/login')
sleep(10)  # 等待登录完成,必须在10秒内完成,否则会报错
files = [f for f in os.listdir(folder_path) if os.path.isfile(os.path.join(folder_path, f))]
n = 0
for file in files:
    i = n % 2
    n = n + 1
    driver.get('https://cloud.tencent.com/product/ocr')
    driver.execute_script("window.scrollBy(0, 400);")
    WebDriverWait(driver, 20).until(EC.presence_of_element_located(
        (By.XPATH, '/html/body/div[2]/div/div/div[2]/div/div/div/div/div[1]/div[2]/div/div[2]'))).click()
    sleep(0.1)
    anniu = driver.find_element(By.XPATH,
                                '//*[@id="demo-app"]/div/div/div/div[2]/div[2]/div/div[1]/div[2]/div[1]/div[1]')
    driver.execute_script("arguments[0].scrollIntoView(true);", anniu)
    anniu.click()
    sleep(0.5)
    app = Application().connect(title='打开')
    window = app.window(title='打开')
    window["文件名(&N):Edit"].set_text(os.path.join(folder_path, file))
    sleep(0.2)
    window["文件名(&N):Edit"].type_keys("{VK_RETURN}")
    sleep(3)
    table = WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.TAG_NAME, 'tbody')))
    rows = table.find_elements(By.TAG_NAME, "tr")
    # 定义文件保存的路径
    file_path = 'd:/c/a.docx'
    # 获取文件所在的目录
    dir_path = os.path.dirname(file_path)
    # 如果目录不存在,则创建它
    if not os.path.exists(dir_path):
        os.makedirs(dir_path)
    doc = Document(file_path)
    # 遍历每一行,获取单元格中的文本
    if i == 0:
        doc.add_paragraph('左±×·℃÷≤≥≠≈★√∵∴∠πμρηΔΩ°′″________[   ]①②③④⑤')
    '''else:
        doc.add_paragraph('右±×·℃÷≤≥≠≈★√∵∴∠πμρηΔΩ°′″________[   ]①②③④⑤')'''
    for row in rows:
        cells = row.find_elements(By.TAG_NAME, "td")
        for cell in cells:
            doc.add_paragraph(cell.text)
    # 保存文档
    doc.save(file_path)

文件, 路径

52soft   

    from pywinauto import Application
  File "C:\Program Files\Python312\Lib\site-packages\pywinauto\__init__.py", line 59, in
    import win32api  # noqa: E402
ModuleNotFoundError: No module named 'win32api'
这是什么错误?
zjg121
OP
  


52soft 发表于 2024-5-5 17:38
from pywinauto import Application
  File "C:\Program Files\Python312\Lib\site-packages\pywinaut ...

可能没有安装需要的库。试试:pip install pywin32
如果调试中出现问题,可以把提示输入到文心一言、讯飞星火、通义千问等ai中,看看怎样解决。
调味包   

有直接调用API的吗?
zjg121
OP
  


调味包 发表于 2024-5-5 14:41
有直接调用API的吗?

https://www.52pojie.cn/thread-1920332-1-1.html
A582168411   

谢谢分享
52soft   

这个才是最好的工具
py学徒   

离线版 才有意义。
调味包   


zjg121 发表于 2024-5-5 14:48
https://www.52pojie.cn/thread-1920332-1-1.html

收到 麻烦了
seekwe   

没有并发限制?
您需要登录后才可以回帖 登录 | 立即注册

返回顶部