スクリプトを終了するにはどうすればいいですか? 質問する

スクリプトを終了するにはどうすればいいですか? 質問する

die()PHP の コマンドのように、スクリプトを早期に終了するにはどうすればよいでしょうか?

ベストアンサー1

import sys
sys.exit()

詳細はsysモジュールドキュメント:

sys.exit([arg])

Pythonから終了します。これは、SystemExit例外が発生するため、finally節で指定されたクリーンアップアクションはtryステートメントは尊重され、外部レベルで終了の試行を傍受することが可能です。

オプション引数arg は、終了ステータスを示す整数 (デフォルトは 0) または別のタイプのオブジェクトです。整数の場合、シェルなどでは 0 は「正常終了」、0 以外の値は「異常終了」とみなされます。ほとんどのシステムでは、0 から 127 の範囲で指定する必要があり、それ以外の場合は未定義の結果が生成されます。一部のシステムでは、特定の終了コードに特定の意味を割り当てる規則がありますが、これは一般に未開発です。Unix プログラムでは、一般に、コマンドライン構文エラーには 2、その他のすべての種類のエラーには 1 を使用します。別のタイプのオブジェクトが渡された場合、None は 0 を渡した場合と同じで、その他のオブジェクトは次のように出力されます。stderr終了コードは 1 になります。特に、sys.exit("some error message")エラーが発生したときにプログラムを終了させる簡単な方法です。

以来exit()最終的には「のみ」例外を発生させ、メイン スレッドから呼び出されたときにのみプロセスを終了し、例外はインターセプトされません。

これは終了するための「良い」方法であることに注意してください。@グリフツイステッドマトリックス以下では、「強制終了」が必要な場合は を使用できると指摘していますos._exit(*errorcode*)が、これはある程度 OS 固有である可能性があり (たとえば、Windows ではエラー コードを取得できない可能性があります)、プロセスが終了する前にインタープリタがクリーンアップを実行できないため、間違いなく使いにくくなります。一方、これは実行中のすべてのスレッドを含むプロセス全体を強制終了しますsys.exit()が、 (ドキュメントに記載されているように) メイン スレッドから呼び出され、他のスレッドが実行されていない場合にのみ終了します。

おすすめ記事