web-dev-qa-db-ja.com

PythonでControl-Cをキャプチャ

次の方法でpythonでControl-Cをキャッチできるかどうかを知りたい:

 if input != contr-c:
    #DO THINGS
 else:
    #quit

私はtryexcept KeyboardInterruptしかし、彼らは私のために働いていません。

29
pauliwago

this 例外の処理についてのページを読むことを検討してください。

@ abarnert が言っているように、_except KeyboardInterrupt:_の後にsys.exit()を実行します。

何かのようなもの

_try:
    # DO THINGS
except KeyboardInterrupt:
    # quit
    sys.exit()
_

組み込みのexit()関数を使用することもできますが、 @ eryksun が指摘したように、_sys.exit_の方が信頼性が高くなります。

45
pradyunsg

あなたのコメントから、あなたの唯一の問題はexcept KeyboardInterrupt:は、割り込みが発生したときに終了させる方法がわからないということです。

もしそうなら、それは簡単です:

import sys

try:
    user_input = input()
except KeyboardInterrupt:
    sys.exit(0)
10
abarnert