3

私は自分のコードを持っていますが、それは無限に実行されます。私が望むのは、UNIXコマンドウィンドウでユーザーがctrl Cを入力した場合、プログラムが現在のループを終了してからループから抜け出すことです。だから私はそれを壊したいのですが、現在のループを終わらせたいのです。ctrl C は使用できますか? 別の入力を見る必要がありますか?

4

1 に答える 1

3

これを正確かつ正確に行うには、少し複雑です。

基本的に、Ctrl-C をトラップし、フラグを設定し、そのフラグをチェックするループの開始 (または終了) まで続行します。signalこれは、モジュールを使用して実行できます。幸いなことに、誰かがすでにそれを行っており、リンクされた例のコードを使用できます。

編集:以下のコメントに基づいて、クラスの典型的な使用法は次のとおりBreakHandlerです。

ih = BreakHandler()
ih.enable()
for x in big_set:
    complex_operation_1()
    complex_operation_2()
    complex_operation_3()
    # Check whether there was a break.
    if ih.trapped:
        # Stop the loop.
        break
ih.disable()
# Back to usual operation
于 2010-08-10T22:11:46.003 に答える