web-dev-qa-db-ja.com

Pythonスクリプトの実行を中止するにはどうすればよいですか?

可能性のある複製:
Pythonスクリプトの終了

条件が満たされた場合に実行を停止したい単純なPythonスクリプトがあります。

例えば:

done = True
if done:
    # quit/stop/exit
else:
    # do other stuff

基本的に、コードのフローが関数を終了し、残りのコードを実行しないようにする関数の本体の「return」キーワードと同等に動作するものを探しています。

140
Ray Vega

使用できるスクリプトを終了するには、

import sys
sys.exit()

終了ステータス値(通常は整数)も指定できます。

import sys
sys.exit(0)

通常は成功と解釈されるゼロで終了します。通常、ゼロ以外のコードはエラーとして扱われます。デフォルトではゼロで終了します。

import sys
sys.exit("aa! errors!")

「aa!errors!」を出力しますステータスコード1で終了します。

Osモジュールには_exit()関数もあります。 sys.exit() 関数はSystemExit例外を発生させてプログラムを終了するため、tryステートメントとクリーンアップコードを実行できます。 os._exit()バージョンはこれを行いません。クリーンアップや出力バッファのフラッシュを行わずにプログラムを終了するだけなので、通常は使用しないでください。

Python docs は、os._exit()がos.fork()の呼び出しで作成された子プロセスを終了する通常の方法であるため、特定の状況で使用できることを示します。

238
ryan_s
import sys
sys.exit()
18
gimel

スクリプトの本体を関数に入れて、その関数から戻ることができます。

def main():
  done = True
  if done:
    return
    # quit/stop/exit
  else:
    # do other stuff

if __== "__main__":
  #Run as main program
  main()
17
David Locke

次のいずれかを使用できます。

import sys
sys.exit(...)

または:

raise SystemExit(...)

オプションのパラメータは、終了コードまたはエラーメッセージです。両方の方法は同じです。以前はsys.exitを好んでいましたが、SystemExitを上げることに最近切り替えました。これは、コードの残りの部分で目立つように見えるためです(raiseキーワードのため)。

14
efotinis

exit()はトリックを行う必要があります

4
Sec

試して

sys.exit("message")

Perlのようなものです

die("message")

これがあなたが探しているものなら。インポートされたモジュール/ def/functionから呼び出されても、スクリプトの実行を終了します

3
GabrieleV

exit()で実行する必要があります。

3
Dana

プログラム全体が停止する必要がある場合はsys.exit()を使用し、そうでない場合は空のリターンを使用します。

2
André