2012-03-06 67 views
6

打开图像文件我想执行以下代码错误在PIL

from pytesser import * 
import Image 

i="C:/Documents and Settings/Administrator/Desktop/attachments/R1PNDTCB.jpg" 
print i 
im = Image.open(i.strip()) 
text = image_to_string(im) 
print text 

我收到以下错误

C:/Documents and Settings/Administrator/Desktop/attachments/R1PNDTCB.jpg 
Traceback (most recent call last): 
    File "C:\Python27\Lib\site-packages\Pythonwin\pywin\framework\scriptutils.py", line 322, in RunScript 
    debugger.run(codeObject, __main__.__dict__, start_stepping=0) 
    File "C:\Python27\Lib\site-packages\Pythonwin\pywin\debugger\__init__.py", line 60, in run 
    _GetCurrentDebugger().run(cmd, globals,locals, start_stepping) 
    File "C:\Python27\Lib\site-packages\Pythonwin\pywin\debugger\debugger.py", line 655, in run 
    exec cmd in globals, locals 
    File "C:\Documents and Settings\Administrator\Desktop\attachments\ocr.py", line 1, in <module> 
    from pytesser import * 
    File "C:\Python27\lib\site-packages\PIL\Image.py", line 1952, in open 
    fp = __builtin__.open(fp, "rb") 
IOError: [Errno 2] No such file or directory: 'C:/Documents and Settings/Administrator/Desktop/attachments/R1PNDTCB.jpg' 

能有人请解释什么,我做错了。

将图像文件重命名。将python文件和图像转移到新文件夹。转移的文件夹,E盘 现在的代码如下:

from pytesser import * 
import Image 
import os 

i=os.path.join("E:\\","ocr","a.jpg") 
print i 
im = Image.open(i.strip()) 
text = image_to_string(im) 
print text 

现在错误如下:

E:\ocr\a.jpg 
Traceback (most recent call last): 
    File "or.py", line 8, in <module> 
    text = image_to_string(im) 
    File "C:\Python27\lib\pytesser.py", line 31, in image_to_string 
    call_tesseract(scratch_image_name, scratch_text_name_root) 
    File "C:\Python27\lib\pytesser.py", line 21, in call_tesseract 
    proc = subprocess.Popen(args) 
    File "C:\Python27\lib\subprocess.py", line 679, in __init__ 
    errread, errwrite) 
    File "C:\Python27\lib\subprocess.py", line 893, in _execute_child 
    startupinfo) 
WindowsError: [Error 2] The system cannot find the file specified 
+1

请确保您有正确的路径。 '从操作​​系统。路径导入isfile;断言isfile(i))'你现在有'print i'的地方。 – AdamKG 2012-03-06 16:11:04

+0

该文件当前是否存在于该位置? – 2012-03-06 16:13:37

+0

是的文件存在。 – Jonah 2012-03-06 16:13:53

回答

3

唯一的例外是相当清楚的:该文件不存在,或您缺乏足够的权限来访问它。如果两者都不是这种情况,请提供证据(例如,带有输出的相关dir命令,以同一用户身份运行)。

+2

我打赌权限,因为他们试图访问管理员拥有的东西。 – 2012-03-06 16:20:38

+0

我是管理员。 – Jonah 2012-03-06 16:23:28

+0

@Jonah,我正在改变主意 - 那条路看起来不正确。在Windows资源管理器中导航到该文件,并从顶部位置下拉列表中复制/粘贴路径。 – 2012-03-06 16:28:04

0

你的图像路径也许?

i="C:\\Documents and Settings\\Administrator\\Desktop\\attachments\\R1PNDTCB.jpg" 

试试这个:

import os 
os.path.join("C:\\", "Documents and Settings", "Administrator") 

你应该得到一个类似于在前面行的字符串

0

请先尝试:

os.path.expanduser('~/Desktop/attachments/R1PNDTCB.jpg')

这可能是“文档和设置”中的空间导致了这个问题。

编辑:

使用os.path.join所以它使用了正确的目录分隔符。

+0

我试着将目录改为D它给出了以下错误:WindowsError:[Error 2]系统找不到指定的文件' – Jonah 2012-03-06 16:26:45

+0

Windows可以使用''/''和''\\''交替使用,所以分离器不是问题。 – 2012-03-06 16:49:55

0

只是在你的代码

进口OS

os.chdir('C:\Python27\Lib\site-packages\pytesser') 

from pytesser import * 
4

您需要首先安装正方体之前添加这两条线。仅仅安装pytesseract是不够的。然后编辑pytesseract.py中的tesseract_cmd变量以指向tessseract二进制文件。例如,在我安装我将它设置为

tesseract_cmd = 'C:\\Program Files (x86)\\Tesseract-OCR\\tesseract.exe' 
+0

我的pytesser.py中没有tesseracr_cmd变量,我该如何纠正这个错误? – 2017-09-12 15:08:30

0

如果您正在使用pytesseract,你必须确保你已经在你的系统上安装的Tesseract-OCR。之后,你必须插入正方体的路径在你的代码,如下

from PIL import Image 
import pytesseract 

pytesseract.pytesseract.tesseract_cmd = 'C:/Program Files (x86)/Tesseract 
OCR/tesseract' 

您也可以下载的Tesseract-OCR形式https://github.com/UB-Mannheim/tesseract/wiki

相关问题