Python でプログラムを終了させる方法
-
Python のプログラムを
quit()
メソッドで終了させる -
Python プログラムを
exit()
メソッドで終了する -
sys.exit()
メソッドで Python プログラムを終了する -
Python プログラムを
os.exit()
メソッドで終了させる - 終了コード
PHP と同様に、die()
コマンドは実行中のスクリプトを終了させます。同様に、quit()
、exit()
、sys.exit()
、os.exit()
などの組み込み関数を用いて Python スクリプトを終了させることができます。Python は命令を上から順に実行し、基準に従ってコードに定義されたループを実行しますが、Python インタプリタはファイル EOF
の最後に到達すると、それ以上の命令を読み込めなくなるため、実行を終了します。
この記事では、Python でプログラムを終了させる方法を紹介します。
Python のプログラムを quit()
メソッドで終了させる
組み込みの関数を使って Python スクリプトを終了させる簡単で効果的な方法は quit()
メソッドです。このコマンドが実行されると、OS に SystemExit
例外が発生します。完全なサンプルコードは以下の通りです。
for test in range(10):
if test == 5:
print(quit)
quit()
print(test)
出力:
0
1
2
3
4
Use quit() or Ctrl-Z plus Return to exit
Python プログラムを exit()
メソッドで終了する
機能は quit()
メソッドと同じですが、Python ライブラリをインポートする必要はありません。完全なサンプルコードは以下の通りです。
for test in range(10):
if test == 5:
print(exit)
exit()
print(test)
出力:
0
1
2
3
4
Use exit() or Ctrl-Z plus Return to exit
sys.exit()
メソッドで Python プログラムを終了する
このメソッドは quit()
や exit()
よりも優れています。構文は以下の通りです。
sys.exit([arg])
構文では arg
はオプションです。大抵は整数値ですが、文字列も渡すことができます。引数の値が 0 の場合は正常終了のベストケースと考えられています。完全なサンプルコードは以下の通りです。
import sys
weight = 70
if weight < 80:
sys.exit("weight less than 80")
else:
print("weight is not less than 80")
出力:
SystemExit: weight less than 80
Python プログラムを os.exit()
メソッドで終了させる
このメソッドは、スクリプト内の子プロセスのような特別な状態でプロセスを終了させるために用いられます。子プロセスは os.fork()
メソッドを用いて作成することができます。Linux では os.fork()
コマンドが効率的に動作するが、Windows 用の Cygwin-built を利用する必要があります。その参照はこちらです。
完全なサンプルコードは以下の通りです。
import os
parent_id = os.fork()
if parent_id > 0:
print("\nIn parent process")
info = os.waitpid(parent_id, 0)
if os.WIFEXITED(info[1]):
code = os.WEXITSTATUS(info[1])
print("Child's exit code:", code)
else:
print("child process")
print("Process ID:", os.getpid())
print("Test Code")
print("Child exiting..")
os._exit(os.EX_OK)
os.wait()
メソッドは子プロセスの ID とその終了ステータスを返します。終了コードは os._exit()
メソッドを用いて取得します。
出力:
AttributeError: module 'os' has no attribute 'fork'
終了コード
上記のすべての方法の中で、sys.exit()
メソッドが好ましい。一方、os.exit()
コマンドは特定のシナリオや即時終了の場合に使うべきです。