2016-10-21 106 views
-1

我試圖在當前屏幕中檢測圖片。有時可以找到圖片並返回圖片的結果位置。但有時可以在當前屏幕中找到它。在那個時候,它得到錯誤TypeError:'NoneType'對象不可迭代pyscreeze

TypeError: 'NoneType' object is not iterable 

因爲沒有找到結果。我試圖把在無法找到的結果通過

try: 
    a,b,c,d = pyscreeze.locateOnScreen('pic.png') 
except AttributeError: 
    print('no object found on screen') 

通過它,再繼續但遺憾的發現,它不能正常工作。那麼,無論如何拋出錯誤TypeError: 'NoneType' object is not iterable當沒有圖片發現?

+1

'除了TypeError'不'AttributeError' –

+0

@Chris_Rands感謝anwser :)。順便說一句這個lib很糟糕:(,找到一個圖像的速度低於10% – AlphaWolf

回答

2

你必須except被提升,所以在這種情況下,它應該是錯誤的類型:

try: 
    a,b,c,d = pyscreeze.locateOnScreen('pic.png') 
except TypeError: 
# ^
    print('no object found on screen') 

注意有可能except不指定錯誤類型,但這不是好的做法一般。

1

根據文檔https://pypi.python.org/pypi/PyScreeze/0.1.0locateOnScreen()回報None如果沒有發現任何東西,所以你可能希望你的代碼是這樣的:

position = pyscreeze.locateOnScreen('pic.png') 
if position is None: 
    print("Not found") 
else: 
    a,b,c,d = position 
+0

你可以建議我一個庫比pyscreeze更好地發現圖像在目前的屏幕? – AlphaWolf