1

ユーザーに control-c を使用してスクリプトを閉じてもらいたいのですが、control-c を押すと、エラーと閉じる理由が表示されます (これは理にかなっています)。表示されているものではなく、独自のカスタム出力を画面に表示する方法はありますか? その特定のエラーを処理する方法がわかりません。

4

3 に答える 3

1

signal モジュールを使用して、SIGINT シグナルのハンドラーを定義します。

import signal
import sys

def sigint_handler(signal_number, stack_frame):
    print('caught SIGINT, exiting')
    sys.exit(-1)

signal.signal(signal.SIGINT, sigint_handler)
raw_input('waiting...')
于 2016-01-14T00:33:15.773 に答える
0

汎用コードの場合、KeyboardInterrupt の処理で十分です。スレッド化などの高度なコードの場合は、まったく別の話です。簡単な例を次に示します。

http://docs.python.org/2/library/exceptions.html#exceptions.KeyboardInterrupt

try:
    while 1:
        x = raw_input("Type something or press CTRL+C to end: ")
        print repr(x)
except KeyboardInterrupt:
    print "\nWe're done here."
于 2013-07-08T18:41:30.440 に答える