2016-10-21 29 views
-1

現在の画面で画像を検出しようとしました。時にはそれは画像を見つけて、画像の結果位置を返すことができる。しかし、それは現在の画面に存在していることがあります。その時にエラーが発生しましたTypeError: 'NoneType'オブジェクトは反復可能ではありません。

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 :)ありがとう。このライブラリは非常に悪い:(画像を見つけるためのレートは10%未満です – AlphaWolf

答えて

2

あなたはexceptにそれがあるべきこの場合ので、発生したエラーの種類があります。それは、エラーのタイプを指定せずにexceptすることが可能である

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

注意が、これは一般的ではないお勧めします。

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

関連する問題