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

使用pytesseract提取文本遇多余空格,配置后触发文件未找到错误

解决pytesseract提取文本多余空格及临时文件找不到的问题

先修正基础代码语法错误

你原代码里把lang和config参数传给了Image.open(),这是错误的——这两个参数属于pytesseract.image_to_string()方法,正确的基础代码应该是:

from PIL import Image
import pytesseract

text = pytesseract.image_to_string(Image.open(img), lang='deu', config='--psm 2')

语法错误可能会引发后续不可预期的文件操作问题。

解决多余空格问题

方案1:调整Tesseract通用配置参数

如果tosp_min_sane_kn_sp参数引发错误,大概率是你的Tesseract版本不支持该参数,或者参数名拼写有误。可以改用更通用的空格控制参数:

# 将图像视为单一均匀文本块,同时抑制多余空格
text = pytesseract.image_to_string(Image.open(img), lang='deu', config='--psm 6 -c preserve_interword_spaces=0')

--psm 6更适合提取连续单词类文本;preserve_interword_spaces=0会自动移除不必要的空格。

方案2:提取后手动清理空格

如果配置参数调整无效,直接对提取后的文本做字符串处理:

import re

text = pytesseract.image_to_string(Image.open(img), lang='deu', config='--psm 2')
# 移除所有空格(适合Aditya这类无空格的连续单词)
cleaned_text = ''.join(text.split())
# 或替换多个连续空格为单个空格(适合含正常空格的文本)
cleaned_text = re.sub(r'\s+', ' ', text).strip()

解决FileNotFoundError问题

这个错误通常由以下原因导致,对应解决方式:

  • 检查Tesseract版本,确保使用的参数在当前版本中存在(可通过tesseract --version查看版本,对照官方文档确认参数兼容性)
  • 确认Python进程有读写系统临时目录(C:\Users\adi\AppData\Local\Temp)的权限
  • 放弃使用可能存在版本兼容问题的小众参数,改用上述通用方案

内容的提问来源于stack exchange,提问作者Aditya sharma

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 11:31:05