news 2026/4/18 5:14:22

# 新手进阶Python:打造批量OCR工具,10行代码提取图片文字

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
# 新手进阶Python:打造批量OCR工具,10行代码提取图片文字

大家好!我是CSDN的Python新手博主~ 前三篇分享了文件整理、个人记账工具和新手项目推荐,很多小伙伴说“想练点能解决实际需求、还能接触新知识点的项目”。今天就带来一个超实用的新手实战——批量OCR图片文字提取工具

日常工作学习中,经常会遇到“截图里的文字想复制”“扫描件的内容要编辑”的场景,手动输入太麻烦。这个工具能自动识别图片中的中文/英文文字,支持单张/批量提取,还能保存到文档里,全程用基础语法+简单第三方库实现,新手也能快速上手~

一、本次学习目标

  1. 掌握第三方库的安装与使用(PIL+pytesseract);
  2. 学会批量处理文件(遍历文件夹图片);
  3. 理解OCR识别的基础流程;
  4. 巩固文件读写、异常处理的核心知识点。

二、前期准备:安装依赖库与OCR引擎

这个项目需要两个核心工具:图片处理库(PIL)OCR识别库(pytesseract),步骤如下(新手跟着做,别慌!):

1. 安装Python库

打开命令行(Windows按Win+R输入cmd,Mac打开终端),输入以下命令安装:

# 安装图片处理库(PIL的升级版,用于读取图片)pipinstallpillow -i https://pypi.tuna.tsinghua.edu.cn/simple# 安装OCR识别库(调用Tesseract引擎)pipinstallpytesseract -i https://pypi.tuna.tsinghua.edu.cn/simple
  • 用清华源(-i 后面的链接)下载更快,避免超时失败。

2. 安装Tesseract OCR引擎(关键!)

pytesseract只是“桥梁”,真正实现识别的是Tesseract引擎,必须单独安装:

  1. 下载引擎:去Tesseract官网下载安装包(Windows选64位版本,如tesseract-ocr-w64-setup-v5.3.0.exe);
  2. 安装注意:
    • 勾选“Additional language data”中的“Chinese (Simplified)”(中文识别包),否则无法识别中文;
    • 记住安装路径(比如默认的C:\Program Files\Tesseract-OCR),后续要配置环境变量。
  3. 配置环境变量(Windows):
    • 右键“此电脑”→属性→高级系统设置→环境变量→系统变量→Path→编辑→新建,粘贴Tesseract的安装路径(如C:\Program Files\Tesseract-OCR);
    • 配置完成后,关闭命令行重新打开(环境变量生效)。

三、实战:实现批量OCR文字提取工具

1. 核心需求

  • 支持识别单张图片(JPG/PNG格式);
  • 支持批量识别文件夹内所有图片;
  • 识别结果自动保存到txt文档,按“图片名-识别结果”格式存储。

2. 完整代码(可直接复制运行)

importpytesseractfromPILimportImageimportos# 配置Tesseract引擎路径(如果环境变量配置成功,这行可以注释掉;失败则手动填写安装路径)# pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'defocr_single_image(image_path,output_txt):"""识别单张图片的文字并写入txt"""try:# 打开图片img=Image.open(image_path)# 识别文字(lang='chi_sim'表示识别中文,lang='eng'识别英文,默认中英文混合)text=pytesseract.image_to_string(img,lang='chi_sim')# 获取图片文件名image_name=os.path.basename(image_path)# 写入txt文件(追加模式)withopen(output_txt,'a',encoding='utf-8')asf:f.write(f"==={image_name}的识别结果 ===\n")f.write(text.strip()+"\n\n")print(f"✅{image_name}识别完成!")exceptExceptionase:print(f"❌{image_path}识别失败:{str(e)}")defocr_batch_images(folder_path,output_txt):"""批量识别文件夹内的图片"""# 先清空之前的识别结果(可选,根据需求调整)ifos.path.exists(output_txt):os.remove(output_txt)# 遍历文件夹内所有文件forfile_nameinos.listdir(folder_path):# 筛选图片格式(JPG/PNG)iffile_name.lower().endswith(('.jpg','.jpeg','.png')):file_path=os.path.join(folder_path,file_name)ocr_single_image(file_path,output_txt)print(f"\n🎉 批量识别完成!结果已保存到:{output_txt}")if__name__=="__main__":# 请根据自己的需求修改以下路径# 选项1:批量识别文件夹(推荐)target_folder=r"C:\Users\你的用户名\Desktop\需要识别的图片"# 图片文件夹路径output_file="OCR识别结果.txt"# 输出的txt文件名# 选项2:识别单张图片(注释上面两行,取消下面两行注释)# single_image_path = r"C:\Users\你的用户名\Desktop\测试图片.png"# ocr_single_image(single_image_path, "单张图片识别结果.txt")# 执行批量识别ocr_batch_images(target_folder,output_file)

3. 关键代码拆解(新手必看)

(1)库的作用
  • PIL.Image:用于打开和处理图片,支持JPG、PNG等常见格式;
  • pytesseract:调用Tesseract引擎,将图片中的文字转为字符串;
  • os:遍历文件夹、处理文件路径,和之前的文件整理工具用法一致。
(2)核心函数解析
  • ocr_single_image(image_path, output_txt):处理单张图片:

    • Image.open(image_path):打开目标图片;
    • pytesseract.image_to_string(img, lang='chi_sim'):核心识别函数,lang='chi_sim'指定中文识别(英文用lang='eng',混合识别可去掉lang参数);
    • try-except:捕获异常(比如图片损坏、路径错误),避免程序崩溃,新手要养成用异常处理的习惯。
  • ocr_batch_images(folder_path, output_txt):批量处理:

    • os.listdir(folder_path):遍历文件夹内所有文件;
    • file_name.lower().endswith(('.jpg', '.png')):筛选图片格式,避免处理非图片文件;
    • 先删除旧的识别结果txt,再用追加模式写入新结果,保证文件整洁。
(3)路径配置说明
  • 图片文件夹路径:Windows系统路径用r"路径"( raw字符串,避免反斜杠转义),比如r"C:\Users\张三\Desktop\图片"
  • 如果环境变量配置失败,取消pytesseract.tesseract_cmd的注释,填入你的Tesseract安装路径(比如C:\Program Files\Tesseract-OCR\tesseract.exe)。

四、运行效果演示

  1. 准备图片:在桌面创建“需要识别的图片”文件夹,放入几张带中文的截图/图片;
  2. 修改代码中的target_folder路径,运行脚本;
  3. 运行完成后,会在脚本所在文件夹生成“OCR识别结果.txt”,内容如下:
=== 工作截图.png 的识别结果 === Python新手实战项目:OCR文字提取工具 核心功能:批量识别图片中的中文/英文文字 适合场景:截图文字提取、扫描件编辑、文档电子化 === 笔记图片.png 的识别结果 === 今日学习计划: 1. 掌握PIL库的图片读取方法 2. 理解OCR识别的基本流程 3. 完成批量处理功能优化

五、新手避坑小贴士

  1. 引擎安装问题
    • 一定要勾选“Chinese (Simplified)”,否则中文识别是乱码;
    • 环境变量配置后,必须关闭命令行重新打开,否则pytesseract找不到引擎。
  2. 图片识别效果
    • 图片越清晰、文字越大,识别准确率越高(模糊图片建议先裁剪/放大);
    • 避免图片中有复杂背景(比如花纹、多色底纹),尽量用纯色背景的图片。
  3. 路径错误
    • 文件夹路径一定要写对,比如用户名不能写错(比如“张三”写成“李四”);
    • 路径中的中文不要有特殊字符(比如emoji、符号),否则会报错。
  4. 库安装失败
    • 用清华源下载(命令后加-i https://pypi.tuna.tsinghua.edu.cn/simple);
    • Windows系统如果提示“缺少dll文件”,可以百度搜索对应的dll文件,放到C:\Windows\System32文件夹下。

六、功能扩展(新手进阶方向)

如果想提升工具实用性,可以尝试添加这些功能(后续文章会详细讲):

  1. 支持PDF文件的文字提取(需要安装pdf2image库,将PDF转为图片再识别);
  2. 识别结果按图片顺序编号,支持关键词搜索;
  3. 生成Excel文件,按“图片名、识别结果、识别时间”分类存储;
  4. 增加GUI界面(用tkinter库),不用修改代码,点击按钮选择文件夹即可识别。

七、总结与后续规划

这篇文章通过“批量OCR工具”,带大家接触了Python第三方库的使用、OCR识别、批量文件处理等实用技能。新手学习的关键还是“边做边查”,遇到问题先百度(比如“pytesseract中文乱码”),大部分问题都有成熟的解决方案。

接下来的系列文章,我会继续分享新手友好的实战项目,比如:

  • PDF批量处理工具(合并、拆分、转图片);
  • 简易GUI桌面工具(用tkinter实现可视化操作);
  • 自动化截图+OCR识别(一键提取屏幕文字)。

如果这篇文章对你有帮助,欢迎点赞收藏+关注,也可以在评论区分享你的使用体验或遇到的问题(比如“引擎安装失败”“识别准确率低”),我会一一解答~ 我们一起从新手慢慢进阶!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/13 4:23:44

量子编程效率提升300%,VSCode这次更新到底做了什么?

第一章:量子编程效率提升的里程碑近年来,量子计算从理论走向实践的过程中,编程效率的提升成为推动技术落地的关键因素。通过新型量子编译器与优化框架的引入,开发者能够以更简洁的代码表达复杂的量子逻辑,显著缩短了算…

作者头像 李华
网站建设 2026/4/17 21:09:07

【量子开发新纪元】:3步实现Q#对Python函数的精准调用

第一章:量子开发新纪元的开启量子计算正以前所未有的速度重塑软件开发的边界。随着IBM、Google和Rigetti等公司推出可访问的量子处理器,开发者不再局限于理论研究,而是能够直接编写、模拟和运行量子算法。这一转变标志着编程范式的根本性跃迁…

作者头像 李华
网站建设 2026/4/18 6:28:39

你不知道的VSCode环境变量秘密:远程调试成功的真正原因

第一章:你不知道的VSCode环境变量秘密:远程调试成功的真正原因在使用 VSCode 进行远程开发或调试时,许多开发者忽略了环境变量在背后的关键作用。实际上,远程调试能否成功,往往取决于环境变量是否被正确继承和传递。环…

作者头像 李华
网站建设 2026/4/16 5:32:58

Docker环境下Agent服务版本管理全攻略(专家级避坑指南)

第一章:Agent服务Docker版本管理的核心挑战在现代微服务架构中,Agent服务作为基础设施与应用之间的桥梁,其稳定性与可维护性至关重要。使用Docker部署Agent服务虽提升了环境一致性与部署效率,但也引入了版本管理的复杂性。镜像版本…

作者头像 李华
网站建设 2026/4/16 10:46:59

【限时揭秘】智能Agent容器互联安全隔离策略:99%的人都用错了

第一章:智能Agent容器互联安全隔离概述在现代分布式系统架构中,智能Agent作为具备自主决策与通信能力的软件实体,广泛应用于自动化运维、边缘计算和多主体协同场景。当多个智能Agent以容器化方式部署时,其间的互联通信必须在高效性…

作者头像 李华
网站建设 2026/4/16 17:46:25

端口映射配置总是失败?,一文搞定VSCode远程调试常见陷阱

第一章:VSCode远程调试端口映射的认知盲区在使用 VSCode 进行远程开发时,开发者常依赖 Remote-SSH 或 Dev Containers 实现跨环境调试。然而,端口映射机制中的隐性配置往往成为调试失败的根源,形成普遍存在的认知盲区。本地与远程…

作者头像 李华