吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3573|回复: 25
收起左侧

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

  [复制链接]
zjg121 发表于 2024-5-5 14:25
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)



免费评分

参与人数 3吾爱币 +8 热心值 +3 收起 理由
FOX666qwq + 1 我很赞同!
yozolast + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

wanwyt 发表于 2024-7-17 10:04
王胖子不胖 发表于 2024-7-17 08:04
感谢大佬!期待大佬的回复

# 这是一个示例 Python 脚本。

# 按 Shift+F10 执行或将其替换为您的代码。
# 按 双击 Shift 在所有地方搜索类、文件、工具窗口、操作和设置。

import os
import sys
import pdfplumber
import re


def new_prefix_tt(original_file_path):
    with pdfplumber.open(original_file_path) as pdf:
          # 遍历PDF中的每一页
        for page in pdf.pages:
            # 提取当前页的文本
            text = page.extract_text()
            print(text)
            print("----------------")
            date_line = re.search(r'售\n名称:(.*)', text)
            date_line1 = re.search(r'销 名称:(.*)', text)
            # 如果找到包含“开票日期”的行
            if date_line:
                # 提取日期部分(假设日期后面没有冒号或其他分隔符)
                invoice_m = date_line.group(1).strip()
                print(f"Found invoice : {invoice_m}")
                return invoice_m

            if date_line1:
                # 提取日期部分(假设日期后面没有冒号或其他分隔符)
                invoice_m = date_line1.group(1).strip()
                print(f"找到发票名称 : {invoice_m}")
                return invoice_m

def new_prefix_date(original_file_path):
    with pdfplumber.open(original_file_path) as pdf:
        # 遍历PDF中的每一页
        for page in pdf.pages:
            # 提取当前页的文本
            text = page.extract_text()

            date_line = re.search(r'开票日期:(.*)', text)

            # 如果找到包含“开票日期”的行
            if date_line:
                # 提取日期部分(假设日期后面没有冒号或其他分隔符)
                invoice_date = date_line.group(1).strip()
                print(f"找到发票日期: {invoice_date}")
                return invoice_date

def batch_rename_pdf_invoices(directory):
    # 遍历指定目录中的所有文件
    current_number = "001"  # 初始化变量为"001"
    for filename in os.listdir(directory):

        # 检查文件是否以.pdf结尾,并且满足你的发票文件名规则(例如包含'invoice')
        if filename.lower().endswith('.pdf') :
            # 构建原始文件的完整路径
            original_file_path = os.path.join(directory, filename)

            new_prefix=new_prefix_tt(original_file_path)
            new_date=new_prefix_date(original_file_path)
            # 构建新文件名的前缀(保留原始文件的扩展名)
            new_filename = f"{new_date}{new_prefix}{current_number}{os.path.splitext(filename)[1]}"

            # 构建新文件的完整路径
            new_file_path = os.path.join(directory, new_filename)

            # 重命名文件
            os.rename(original_file_path, new_file_path)
            current_number = str(int(current_number) + 1).zfill(3)  # 递增并填充零
            print(f"Renamed '{filename}' to '{new_filename}'")

# 使用示例
directory = r"C:\123"  # 发票文件所在的文件夹路径


if __name__ == '__main__':

    batch_rename_pdf_invoices(directory)

# 访问 https://www.jetbrains.com/help/pycharm/ 获取 PyCharm 帮助

免费评分

参与人数 1吾爱币 +2 热心值 +1 收起 理由
zjg121 + 2 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

调味包 发表于 2024-5-5 14:41
 楼主| zjg121 发表于 2024-5-5 14:48
52soft 发表于 2024-5-5 17:21
这个才是最好的工具
py学徒 发表于 2024-5-5 17:33
离线版 才有意义。
52soft 发表于 2024-5-5 17:38
    from pywinauto import Application
  File "C:\Program Files\Python312\Lib\site-packages\pywinauto\__init__.py", line 59, in <module>
    import win32api  # noqa: E402
ModuleNotFoundError: No module named 'win32api'
这是什么错误?
 楼主| zjg121 发表于 2024-5-5 17:49
52soft 发表于 2024-5-5 17:38
from pywinauto import Application
  File "C:\Program Files\Python312\Lib\site-packages\pywinaut ...

可能没有安装需要的库。试试:pip install pywin32

如果调试中出现问题,可以把提示输入到文心一言、讯飞星火、通义千问等ai中,看看怎样解决。
调味包 发表于 2024-5-5 19:21
zjg121 发表于 2024-5-5 14:48
https://www.52pojie.cn/thread-1920332-1-1.html

收到 麻烦了
seekwe 发表于 2024-5-5 20:25
没有并发限制?
lgf000 发表于 2024-5-5 20:33
有没有成品啊 小白不会用 感谢大佬
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 14:19

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表