1. ホーム
  2. python

[解決済み] スクリプトを終了させるには?

2022-03-15 01:12:03

質問

を意識しています。 die() コマンドを使用すると、スクリプトを早期に終了させることができます。

Pythonでこれを行うにはどうしたらよいでしょうか?

どのように解決するのですか?

import sys
sys.exit()

の詳細が表示されます。 sys モジュールドキュメント :

sys.exit([arg])

Pythonから終了します。これは SystemExit 例外が発生するため、finally句で指定されたクリーンアップアクションが実行されます。 の try ステートメントが尊重されます。 を外側のレベルで終了させようとする。

オプションの引数 アーグ は、終了ステータスを示す整数です。 (デフォルトは0)、または他のタイプのオブジェクト。もしそれが整数であれば ゼロは「成功した終了」、ゼロ以外の値は「失敗した終了」とみなされます。 シェルなどでは「異常終了」とみなされる。ほとんどのシステム は,0-127の範囲であることが必要であり,未定義の結果を生成する。 それ以外の場合は システムによっては、特定の 特定の終了コードに意味を持たせていますが、これは一般的に Unixのプログラムでは、一般的にコマンドラインのシンタックスに2が使用されます。 を、その他すべての種類のエラーを 1 とします。他の種類のオブジェクト が渡された場合、Noneは0を渡したのと同じであり、それ以外のオブジェクトは にプリントされます。 stderr となり、終了コードが1になります。 特に sys.exit("some error message") は、プログラムを終了させる手っ取り早い方法です。 が発生する。

以来 exit() 最終的に例外を発生させる「だけ」であるため、その例外を終了させるのは メインスレッドから呼ばれた場合、例外は発生しません。 が傍受される。

これは終了するための「いい」方法であることに注意してください。 @ グリフツイストマトリックス では、「ハードな終了」が必要な場合は、以下のように指摘されています。 os._exit(*errorcode*) また、プロセスが終了する前にインタプリタに後始末をさせないので、確かに不親切ではあります。 その一方で する は実行中のすべてのスレッドを含むプロセス全体を終了させますが sys.exit() (ドキュメントにあるように)メインスレッドから呼ばれた場合のみ終了し、他のスレッドは実行されていない。