当前位置: 首页 > news >正文

# 新手进阶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识别(一键提取屏幕文字)。

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

http://www.cnnetsun.cn/news/109845.html

相关文章:

  • 揭秘Q#与Python混合编程:如何实现高效代码导航与智能跳转
  • 【VSCode量子开发必备技能】:深度挖掘历史记录中的隐藏数据
  • 高效获取Bandcamp音乐资源的完整实用指南
  • 从AutoGen到Microsoft Agent Framework:3步完成平滑迁移的技术指南
  • 基于web的酒店点餐系统的设计与实现申报表
  • SFC中文游戏和特辑攻略全5册 | PDF+图包
  • 25、数据库管理与Web内容服务指南
  • NestJS 对比 Express
  • [CTF]攻防世界:Cat 抓住那只猫
  • 6GB显存革命:Seed-VR2如何重新定义AI视频增强标准?
  • Rod性能优化:5大技巧让你的Web爬虫速度飙升300%
  • 量子电路缩放难题如何破解:3步实现高效可视化调控
  • promise应用
  • 量子算法开发全攻略(VSCode配置与示例代码大公开)
  • 如何快速掌握分子可视化:VMD-Python的完整入门指南
  • KolodaView开源项目完整贡献指南:从入门到核心开发者
  • VSCode遇上量子芯片:你不可错过的8个硬件兼容性检测要点
  • 27、垃圾邮件过滤与病毒防护:SpamAssassin 与 ClamAV 全解析
  • 告别复杂命令:5步打造你的专属版本控制系统
  • 20、Linux 文件编辑全攻略
  • 【征文计划】智旅无界:Rokid智能眼镜赋能下一代个性化旅游体验开发指南
  • 2026第六届CHWE出海网全球跨境电商展(深圳)有那些商机与新机遇
  • BGP联盟综合实验
  • ISO 26262汽车功能安全标准终极指南:快速掌握ASIL等级与安全生命周期
  • Uppy文件过滤终极指南:构建4层防护体系的完整方案
  • 部署AI Agent总卡在最后一步?深度解析考试环境中的隐藏陷阱
  • AI时代下的规范驱动开发:重塑前端工程实践
  • PTX VM 未仿真的硬件特性分析
  • AI系统成本优化实战:从技术债务到工程效率的转化路径
  • 【AI落地应用实战】基于 Amazon Redshift + dbt + MWAA 搭建现代数据栈