ホームページ  >  記事  >  バックエンド開発  >  Python で SIGINT シグナルをキャッチするにはどうすればよいですか?

Python で SIGINT シグナルをキャッチするにはどうすればよいですか?

PHPz
PHPz転載
2023-09-17 10:29:02966ブラウズ

Python で SIGINT シグナルをキャッチするにはどうすればよいですか?

この記事では、Python で SIGINT をキャッチする方法と、キャッチした後に何をする必要があるかを学びます。

信号を受信した後、信号モジュールは特定のアクションを実行します。これに加えて、SIGINT を使用してキーボード経由でユーザーの割り込みをキャプチャすることもできます。

必要なモジュール

信号モジュール

用語 「シグナル」 は、プログラムがオペレーティング システムから情報を受け取るプロセスを指します。さらに、オペレーティング システムが特定のイベントを検出すると、プログラムにシグナルが送信されます。シグナルモジュールは、ターミナル -

で次のコマンドを実行することでインストールできます。 リーリー

システムモジュール

Python の sys モジュールは、Python 実行環境のさまざまな部分を変更するための複数の関数と変数を提供します。 sys モジュールは、次のコマンドを使用してインストールできます -

リーリー

時間モジュール

Python の time モジュールを使用すると、ユーザーは時間を操作し、時間に関する情報を記録できます。通常、time モジュールは Python にプリインストールされているため、インストールする必要はありませんが、そうでない場合は、次のコマンド -

を使用してインストールできます。 リーリー

Python で SIGINT をキャプチャする実装を段階的に紹介しましょう。

ステップバイステップの実装

ステップ 1: ライブラリをインポートする

まず、import キーワードを使用して、必要なライブラリをすべてインポートする必要があります。その中には、signal、sys、sleep ライブラリがあります。

リーリー

ステップ 2: 関数を作成する

ここで、任意の 2 つのパラメーターを受け入れることによって、キーボード割り込みが発生した場合に呼び出される関数を作成します。この例では、パラメータは sig および frame とみなされます。

リーリー

ステップ 3: カスタム ハンドラーを定義する

ここでは、signal.signal() 関数を使用して、シグナルの受信時に呼び出す必要があるカスタム ハンドラーを定義します。さらに、キーボードで Ctrl C または Ctrl F2 を入力することで割り込みを引き起こす signal.SIGINT を定義します。

リーリー

ステップ 4: ランダム メッセージを印刷する

次に、キーボードが中断された場合に何をすべきかをユーザーに知らせるために、ランダムなメッセージを数行出力します。

リーリー

ステップ 5: スリープ時間を設定する

最後に、Python のスリープ時間をランダムな秒数に設定します。

リーリー ######知らせ######

このプログラムには問題があります。Windows で実行している場合は、Ctrl と F2 を押して停止して SIGINT をキャッチできますが、Linux で実行している場合は ## を押して停止できます。 #Ctrl と C

を同時に押します。

Python での SIGINT のキャプチャ アルゴリズム (ステップ)

以下は、必要なタスクを実行するために従う必要があるアルゴリズム/手順です。 -

import キーワードを使用して、

signal

モジュールと
    sys
  • モジュールをインポートします。

    import キーワードを使用して、time モジュールから sleep

    関数をインポートします。
  • 変数を作成し、その値を 1 に初期化します (ループの実行数を表すために使用されます)。

  • 無限ループするには、

    while True

    を使用します。
  • Try-Except ブロックを使用してエラー/例外を処理します。

  • 上記の変数を出力して、ループの実行数を出力します。

  • sleep()

    関数を使用して、引数として数値を渡し、各数値を出力する間にランダムな秒数スリープします。
  • ループ実行回数の値に1を加算します。

  • キーボード割り込み例外を処理するには、

    excel

    ブロックを使用します。
  • キーボード割り込み例外が発生した場合は、メッセージを出力します。

  • sys モジュールの

    exit()

    関数を使用して、プログラムを閉じる/終了します。
  • ###例### 次のプログラムは、try/catch 例外キャプチャ SIGINT - を使用します。 リーリー ###出力###

    上記のプログラムを実行すると、次の出力が生成されます -
  • リーリー
このプログラムでは、try-catch ステートメントを使用してキーボード例外を処理します。 try ブロックで数値増加ループを実行しているときに、catch ブロックでキーボード割り込みをキャッチしました。

###結論は###

この記事では、Python を使用して SIGINT をキャプチャする方法を学びました。同じ目的を達成するために try/catch ステートメントを使用する方法を学びました。 Try および catch ステートメントは、0 による除算やキーボード割り込みなどの例外を処理するために使用できます。

以上がPython で SIGINT シグナルをキャッチするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。