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

pytesseract中tessedit_char_whitelist无法兼容引号的问题咨询

报错原因及解决方案:让pytesseract白名单支持引号字符

为啥会报错?

你遇到的问题主要出在两个核心层面,还有一个容易忽略的小细节:

  1. Python字符串解析冲突:你用三重双引号"""来写配置字符串,但白名单里直接放了双引号",Python会把这个双引号当成字符串的结束标记,直接触发语法错误——这也是你看到Traceback的直接原因。
  2. Tesseract命令行参数解析坑:就算你把Python字符串的问题搞定了,当pytesseract把配置传给Tesseract命令行时,引号会被系统的命令行解析器当成参数分隔符,导致Tesseract接收到的白名单不完整,识别不了引号字符。
  3. 小细节:你白名单里写的&lt;是HTML转义后的<,Tesseract会把它当成三个独立的字符&、l、t,而不是小于号,得改成直接写<才行。

一步步解决问题

1. 先搞定Python字符串的语法问题

这里有两种简单可靠的写法,选一个你习惯的就行:

写法一:用三重单引号的原始字符串

带r前缀的三重单引号字符串,可以直接包含单引号和双引号,不会触发字符串终止,写起来最省心:

tesseract_config = r'''
-c tessedit_char_whitelist=0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ#'<>(){};:"
'''

写法二:单引号包裹+转义内部单引号

如果喜欢用单引号字符串,只需要把内部的单引号用\'转义,双引号直接写就行:

tesseract_config = r'-c tessedit_char_whitelist=0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ#\'<>(){};:"'

2. 让Tesseract正确识别引号字符

为了避免命令行解析器吃掉你的引号,最好把整个白名单的值用单引号在Tesseract的参数里包裹起来,这样内部的引号会被当作普通字符处理。调整后的配置如下:

# 适配Windows/Linux/macOS的通用写法
tesseract_config = r'''
-c tessedit_char_whitelist='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ#\'<>(){};:\"'
'''

这里的逻辑是:Tesseract会把单引号包裹的内容完整当作白名单,内部的单引号用\'转义,双引号用\"转义,确保命令行解析时不会被截断。

3. 修复HTML转义的小问题

把白名单里的&lt;改成<,不然Tesseract识别的是&、l、t三个字符,不是你想要的小于号。

完整可运行的代码示例

from PIL import Image
import pytesseract

# 修正后的配置
tesseract_config = r'''
-c tessedit_char_whitelist='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ#\'<>(){};:\"'
'''
tesseract_language = "eng"

# 识别图片
text = pytesseract.image_to_string(
    Image.open('res/outc001.jpg'),
    lang=tesseract_language,
    config=tesseract_config
)
print(text)

排错小技巧

如果还是不行,可以打印出pytesseract生成的完整命令,看看参数有没有问题:

# 查看生成的命令行
print(pytesseract.build_tesseract_cmd(
    image_filename='res/outc001.jpg',
    output_filename='temp',
    extension='txt',
    lang=tesseract_language,
    config=tesseract_config
))

通过检查命令,你能直观看到白名单参数是否被正确传递给Tesseract,方便排查问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:28:42