40

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

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

私はで物事を読んだことがtryありexcept KeyboardInterruptますが、彼らは私のために働いていません。

4

2 に答える 2

66

例外の処理については、このページを読むことを検討してください。役立つはずです。

@abarnertが言ったように、後sys.exit()にしてくださいexcept KeyboardInterrupt:

何かのようなもの

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

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

于 2013-03-10T04:44:14.490 に答える
15

あなたのコメントから、あなたの唯一の問題except KeyboardInterrupt:は、あなたがその割り込みを受け取ったときにそれを終了させる方法がわからないということのように聞こえます。

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

import sys

try:
    user_input = input()
except KeyboardInterrupt:
    sys.exit(0)
于 2013-03-10T02:39:06.897 に答える