Python 2.7 PyteSeract临时输出文件“;没有这样的文件或目录;错误

Python 2.7 PyteSeract临时输出文件“;没有这样的文件或目录;错误,python-2.7,tesseract,python-tesseract,Python 2.7,Tesseract,Python Tesseract,我正在使用PyteSeract的行: text = image_to_string(temp_test_file, lang='eng', boxes=False, config='-c preserve_interword_spaces=1 hocr') 然后得到错误 pytesseract.py 135| f = open(output_file

我正在使用PyteSeract的行:

text = image_to_string(temp_test_file, 
                       lang='eng', 
                       boxes=False, 
                       config='-c preserve_interword_spaces=1 hocr')
然后得到错误

pytesseract.py
135|  f = open(output_file_name, 'rb')

No such file or directory: 
/var/folders/j3/dn60cg6d42bc2jwng_qzzyym0000gp/T/tess_EDOHFP.txt
查看pytesseract的源代码,它似乎无法找到用于存储tesseract命令输出的临时输出文件


我在这里看到了通过检查tesseract是否已安装并可从命令终端调用来解决的其他问题,对我来说,这不是问题所在。你知道这可能是什么以及如何解决吗?感谢

事实证明,pytesseract找不到临时输出文件的原因是它们存储的扩展名不是.txt或.box(它们是.hocr文件)。从源代码来看,这些是pytesseract支持的唯一类型的tesseract输出文件(或者更类似于pytesseract的“查找”)。源代码中的相关代码片段如下:


输入文件名=“%s.bmp”%tempnam()
输出文件名基=tempnam()
如果不是方框:
输出文件名=“%s.txt”%output文件名\u base
其他:
123输出文件名=“%s.box”%output\u file\u name\u base


如果状态:
错误=获取错误(错误字符串)
引发TesserCharacterRor(状态、错误)
135 f=打开(输出文件名'rb')

查看pytesseract的github,似乎计划支持其他输出类型,但尚未实现(我用来说明为什么找不到.hocr文件的源代码是从pytesseract主分支复制/粘贴的)

在此之前,我对pytesseract脚本进行了一些骇人的更改,以支持多种文件类型

此版本不为输出文件设置扩展名(因为tesseract会自动设置该扩展名),而是查找Pyteseract存储其临时输出文件的目录,并查找以Pyteseract指定的输出文件名(直到第一个“.”字符)开头的文件(不考虑扩展名):


希望这对其他人有所帮助。

使用预期的输出格式启动配置字符串:

config_str = "-l eng --oem 4 --psm 7"
text = pytesseract.image_to_string(img, config=("txt "+config_str))
# or for more meta-info:
data = pytesseract.image_to_data(img, config=("tsv "+config_str))

这一条对meEDIT有效:错误消失,但现在识别不起作用
config_str = "-l eng --oem 4 --psm 7"
text = pytesseract.image_to_string(img, config=("txt "+config_str))
# or for more meta-info:
data = pytesseract.image_to_data(img, config=("tsv "+config_str))