2012-03-06 63 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

相關問題