程序员文章、书籍推荐和程序员创业信息与资源分享平台

网站首页 > 技术文章 正文

百张图文字 10 秒提?Python + 微信 OCR 批量识别神操作

hfteth 2025-08-02 18:21:35 技术文章 11 ℃

每天面对几十张带文字的截图、扫描件,手动打字提取到崩溃?别再浪费时间了!今天教你用 Python + 微信 OCR 搞个 "批量文字提取神器",百张图片扔进文件夹,喝杯咖啡的功夫就能自动导出可编辑文字,办公效率直接拉满。

一、为什么选微信 OCR?这 3 个优势绝了

提到 OCR 文字识别,你可能用过百度、腾讯的 API,但微信 OCR 藏着三个 "王炸" 优势:

  1. 免费无限制:不用申请 API 密钥,不扣调用次数,微信客户端自带的 OCR 引擎直接能用,个人办公完全够用。
  2. 识别精度高:对微信内常见的截图、表情包文字、手写体(连笔不严重的)识别率远超很多免费工具,亲测表格线、水印文字也能精准提取。
  3. 轻量化集成:通过wechat_ocr库直接调用微信底层能力,不用单独部署识别服务,几行代码就能跑通。

二、实战准备:3 分钟搭好环境

1. 必备工具清单

  • 电脑端微信(版本 3.9.12.51 及以上,旧版本可能缺少 OCR 组件)
  • Python 3.7+(推荐 3.9,兼容性最好)
  • 两个关键文件夹:images(放待识别图片)、imageJson(存识别结果)

2. 安装核心库

打开命令提示符,一行代码搞定依赖:

bash

pip install wechat-ocr

如果安装失败,可能是缺少 C++ 编译工具,直接搜 "Microsoft C++ Build Tools" 下载安装,勾选 "Desktop development with C++" 即可。

三、核心代码拆解:5 步实现批量识别

直接上能跑的代码,每一步都标好了注释,新手也能看懂:

1. 导入工具库

python

import os  # 处理文件路径
import json  # 保存识别结果为JSON
import time  # 控制识别间隔
from wechat_ocr.ocr_manager import OcrManager, OCR_MAX_TASK_ID  # 微信OCR核心工具

2. 配置关键路径

这一步是新手最容易踩坑的地方,必须仔细看:

python

# 微信OCR引擎路径(重点!找到自己电脑里的WeChatOCR.exe)
wechat_ocr_dir = r"C:\Users\admin\AppData\Roaming\Tencent\WeChat\XPlugin\Plugins\WeChatOCR\7079\extracted\WeChatOCR.exe"
# 微信安装路径(默认在Program Files,根据自己的位置改)
wechat_dir = r"D:\Program Files (x86)\Tencent\WeChat\[3.9.12.51]"
\#\]

六、进阶玩法:从识别到自动化办公

识别完文字只是第一步,真正的效率提升在于把结果变成可直接用的办公素材。分享 3 个立即可用的进阶技巧,帮你把工具变成 “全自动文字处理流水线”。

1. 一键提取关键信息(比如合同里的金额、日期)

识别后的 JSON 文件里藏着所有文字,但我们往往只需要手机号、金额、日期这类关键信息。用正则表达式(re库)就能自动 “抓” 出来:

python

import re
import json

def extract_key_info(json_path):
    # 打开识别结果JSON
    with open(json_path, 'r', encoding='utf-8') as f:
        result = json.load(f)
    full_text = result["text"]  # 获取全部文字
    
    # 用正则匹配关键信息
    phone = re.findall(r'1[3-9]\d{9}', full_text)  # 手机号
    money = re.findall(r'¥?\d+\.?\d*万?', full_text)  # 金额(支持带¥或万字)
    date = re.findall(r'\d{4}年\d{1,2}月\d{1,2}日', full_text)  # 日期
    
    return {
        "文件名": json_path.split("\\")[-1],
        "手机号": phone[0] if phone else "未找到",
        "金额": money[0] if money else "未找到",
        "日期": date[0] if date else "未找到"
    }

# 批量处理所有JSON结果
info_list = []
for json_file in os.listdir(output_json_dir):
    if json_file.endswith(".json"):
        json_path = os.path.join(output_json_dir, json_file)
        info = extract_key_info(json_path)
        info_list.append(info)

# 结果存到Excel(用pandas)
import pandas as pd
df = pd.DataFrame(info_list)
df.to_excel("关键信息汇总.xlsx", index=False)

比如处理 100 份合同扫描件,原本需要逐字找金额和日期,现在跑一遍脚本,2 分钟就能得到带所有关键信息的 Excel 表,再也不用盯着屏幕瞎瞅了。

2. 自动生成 Word 报告(把图片文字变成正式文档)

如果需要把识别的文字整理成规范格式的 Word(比如会议纪要、报销说明),可以用python-docx库自动排版:

python

from docx import Document
from docx.shared import Pt
from docx.oxml.ns import qn

def text_to_word(text, save_path):
    doc = Document()
    # 设置字体为宋体
    doc.styles['Normal'].font.name = u'宋体'
    doc.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋体')
    doc.styles['Normal'].font.size = Pt(12)  # 字号12
    
    # 按换行分割文字,逐行写入
    for line in text.split("\n"):
        if line.strip():  # 跳过空行
            doc.add_paragraph(line)
    
    doc.save(save_path)

# 调用示例(从JSON取文字生成Word)
json_path = "./imageJson/会议记录1.json"
with open(json_path, 'r', encoding='utf-8') as f:
    result = json.load(f)
text_to_word(result["text"], "./会议记录1.docx")

识别完的截图文字,直接变成带格式的 Word,连排版时间都省了,适合经常需要 “把图片转文档” 的场景。

3. 定时批量处理(每天自动识别新图片)

如果每天都有新图片需要处理(比如前台每天收到的扫描件),可以用schedule库设置定时任务,让脚本每天自动跑:

python

import schedule
import time

def auto_ocr():
    print("开始自动识别新图片...")
    main()  # 调用前面写的主函数
    print("今日识别完成!")

# 设置每天下午5点自动运行
schedule.every().day.at("17:00").do(auto_ocr)

# 保持运行
while True:
    schedule.run_pending()
    time.sleep(60)  # 每分钟检查一次



把脚本放在服务器或开机启动项里,从此不用手动点运行,每天下班前自动搞定所有图片识别,第二天上班直接拿结果。

七、最后说句掏心窝的话

办公自动化的核心不是 “写代码”,而是 “偷懒的智慧”—— 把重复 3 次以上的工作电脑,自己去做更有价值的事。

这个微信 OCR 批量识别工具,本质上是 “借微信的力,省自己的时”。不用花钱买会员,不用学复杂的 AI 模型,几行代码就能解决 “图片转文字” 的老大难问题。

如果你今天跟着步骤跑通了代码,不妨试试改改路径,加个自己需要的功能(比如识别后自动发邮件);如果遇到报错,先检查路径是否正确(90% 的问题都出在这),再看看微信是不是最新版。

最后送一句:真正的效率提升,从 “今天花 1 小时学工具,明天省 10 小时干活” 开始。现在就打开编辑器,把你的第一张图片扔进images文件夹试试吧 —— 毕竟,亲手跑通的代码,才是自己的本事。


识感谢关注【AI码力】,学习更多Python知!

最近发表
标签列表