You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python+tesserOCR:如何将单图OCR文本存为对应命名的独立TXT文件

修改后的OCR程序代码

下面是调整后的代码,可实现每张图片提取的文本保存为对应同名TXT文件:

import tesserocr
from PIL import Image
import glob

Image.MAX_IMAGE_PIXELS = None
api = tesserocr.PyTessBaseAPI(path='D:/Anaconda/Tesseract5/tessdata', lang='tur')

# 获取目标文件夹下的文件,可选过滤仅保留图片格式
files = glob.glob('C:/Users/Casper/Desktop/OCR/wpp/*')
files = [f for f in files if f.lower().endswith(('.png', '.jpg', '.jpeg', '.bmp'))]

def extract():
    for idx, file_path in enumerate(files, 1):
        try:
            # 处理当前单张图片
            pil_image = Image.open(file_path)
            api.SetImage(pil_image)
            extracted_text = api.GetUTF8Text()
            
            # 生成同名TXT路径并写入内容
            txt_file_path = file_path[:-4] + '.txt'
            with open(txt_file_path, 'w', encoding='utf-8') as txt_file:
                txt_file.write(extracted_text)
            
            print(f'已完成 {idx}/{len(files)}: {file_path}')
        
        except Exception as e:
            # 遇错误仅提示,不中断整体处理
            print(f'处理失败 {file_path}: {str(e)}')

if __name__ == "__main__":
    extract()

关键修改说明

  • 移除冗余循环:原代码外层遍历文件的同时,内层又重复遍历所有图片并累加文本,导致所有内容被重复写入多个文件。现在直接处理当前遍历到的单张图片,避免重复操作。
  • 独立文本生成:每次仅提取当前图片的文本,不再累加所有图片内容,确保每个TXT文件只对应单张图片的提取结果。
  • 优化错误处理:替换宽泛的except:为捕获具体异常并打印详情,同时移除break,遇到损坏文件时不会中断整个程序,继续处理剩余文件。
  • 格式过滤与编码优化:添加图片格式过滤避免处理非图片文件,写入TXT时指定utf-8编码,防止土耳其语等特殊字符乱码。

内容的提问来源于stack exchange,提问作者Fatih İlhan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 20:05:22