LoginSignup
11

More than 3 years have passed since last update.

Pythonでキー入力を用いてLoopを抜けるには?

Last updated at Posted at 2018-08-20

PythonでWhileなどのループを手元のキー入力で抜けたいときにどうすればいいんでしょう?
opencv使ってた身としてはwaitKey(0)的な挙動を期待したいのですが…

考えうる手法群

プログラムを走らせながらなんらかのキー入力をノンブロッキングで取得するには

などが考えられます。
でもコマンド操作でBreakするだけならCtrl+Cをキャッチすれば良さそうです。

Ctrl+Cをキャッチ

Ctrl+CはKeyboardInterruptという例外としてキャッチできるようです。

上の記事によるならば以下のtry構文でCtrl+C後の処理などについてきちんと書けば良いでしょう。


try:
    while True:  # なんらかの重い処理 (for だったり while だったり。。。)
        pass  # ここに、Ctrl-C で止めたい処理を書く
except KeyboardInterrupt:
    # Ctrl-C を捕まえた!
    # print('interrupted!')
    # なにか特別な後片付けが必要ならここに書く
    sys.exit(0)

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11