raw_input がキーボード割り込みをキャッチするようにするための Python コードが少しあります。この関数でコードを実行すると、完全に正常に動作します。しかし、私のプログラムでそれを実行すると、印刷ステートメントは作成されず、キーボード割り込みがキャッチされていないことが示されます。プログラムは終了を試み、SIGKILL にエスカレートするまで失敗しますが、もちろん正常に動作します。私の推測では、キーボード割り込みが別の場所でキャッチされているため、例外がまったく実行されていません。私の質問は、そのような割り込みが発生する可能性が高い場所と、これをブロックしないようにするにはどうすればよいかということです。私の計画は、プログラムがキーボード割り込みをキャッチしてからプログラム自体を強制終了するまでの間にわずかな遅延を追加して、例外をキャッチする瞬間を与えることでした。
どんなアイデアでも大歓迎
ありがとう!
import sys
def interruptable_input(text=''):
'''Takes raw input, but accepts keyboard interrupt'''
try:
return raw_input(text)
except KeyboardInterrupt:
print "Interrupted by user"
sys.exit()