Python

Pythonのexit関数を使ってプログラムを終了させる方法

By 2021年2月25日March 25th, 2021No Comments

この記事ではPythonのプログラムを終了させる方法を紹介します。Pythonでプログラムを終了させるにはexit( )関数、sys.exit( )関数、quit( )関数でPythonスクリプトを終了させることができます。

Pythonのプログラムを強制終了させるような場面としては、プログラムを実行するための前提条件が整っていなかったりエラーで処理を継続できないなどの場合にプログラムを強制終了させることがあります。

Pythonのexit( )を使うとコマンドから抜ける事ができる

exit( )を使うとターミナルやコマンドプロンプトで起動中の対話型シェルを終了してコマンドから抜ける事ができます。

$python
Python 3.8.5 (default, Jul 21 2020, 10:48:26)
[Clang 11.0.3 (clang-1103.0.32.62)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
$

exit( )を使ってコマンドから抜けてシェルが終了しているのが分かります。exit( )を使うとプログラムを実行している途中でも終了する事ができます。

for number in range(5):
    if number == 2:
        print(exit)
        exit() print(number)

結果:

0

1

Use exit() or Ctrl-D (i.e. EOF) to exit


for文のループ処理中にif文で数値が2になったところでexit( )によりプログラムが強制終了されたのが分かります。このようにexit( )を使うとPythonのプログラムを終了したりコマンドから抜けてプログラムの処理を終了することができます。

sys.exit( )メソッドでPythonプログラムを強制終了する方法

pythonの標準ライブラリであるsysモジュールのexit( )メソッドを使用するとプログラムを強制終了させる事ができます。sys.exit( )は終了ステータスを扱う事もできエラーメッセージなどを指定する事ができます。構文は下記になります。

sys.exit([arg])

[arg]に数値や文字列で終了ステータスやエラーメッセージなどを指定して出力することができます。

まずは、sysモジュールをインポートします。

import sys
print("Hello")
sys.exit('プログラム終了')
print("こんにちわ")

結果:

プログラム終了

Hello


sys.exit( )でPythonの処理が強制終了されました。2つ目のprint( )関数の文字列である“こんにちわ” が出力されていません。その前にあるsys.exit( )関数により引数で指定したエラーメッセージが表示されてプログラムが強制終了されているのが分かります。

これはPythonは命令を上から順に基準に従って実行しているのでそれ以降のコードを読み込んでいないのが分かります。

Pythonのスクリプトを呼び出して実行結果のステータスを受け取りたい場合に正常終了の場合にはsys.exit(0)と引数に0を指定して、それ以外の場合は0以外の数値を引数に指定するのが一般的とされています。

終了ステータスはターミナルやコマンドプロンプトで下記のコマンドをコード実行後に使用して確認する事ができます。

echo $?

まずは仮にsample.pyというファイルに下記のコードを記入します。

sample.py

import sys

print('exitの処理')
sys.exit(1)
print('exitを終了')

そして、ターミナルやコマンドプロンプトで終了ステータスを確認してみます。

$ python3 sample.py

結果:

exitの処理

$ echo $?

結果:

1


「1」が表示されているので終了ステータスを確認することができました。

if文で書くことにより一定の条件を満たすときにプログラムを強制終了させる事もできます。

number = 5

if number < 10:
    sys.exit("プログラム強制終了")
else:
    print("終了しない")

結果:

プログラム強制終了


sys.exit( )関数を使うことにより終了ステータスを指定してPythonのプログラムを強制終了する事ができました。

ただしsys.exit( )は、SystemExitという例外を送出してPythonのプログラムを終了させています。try文のような例外処理内でsys.exit( )で処理してもプログラムを終了させることができません。

import sys

try:
    sys.exit()
except:
    pass
print('強制終了されてません')

結果:

強制終了されてません


例外処理をするtry文ではsys.exit( )が処理されずPythonのプログラムが通常通り処理されているのが分かります。

Pythonのquit( )関数を使ってプログラムのプロセスを強制終了させる方法

quit( )関数を使う事でPythonのプログラムのプロセスを例外処理であるSystemExitでエラーを出してPythonの処理を強制終了させる事ができます。

for number in range(5):
    if number == 3:
        print(quit)
        quit()
print(number)

結果:

Use quit() or Ctrl-D (i.e. EOF) to exit


このようにPythonのプログラムのプロセスを例外処理でエラーを送出して終了するのにquit( )関数を使います。

まとめ

Pythonのexit( )関数について解説しました。exit( )関数を使う事でPythonのプログラムを強制終了させたりコマンドから抜けることができました。これらのexit( )関数は基本的にはインタープリタ内で使用されています。以上、Pythonのexit関数やquit( )関数を使ってPythonの処理を終了させる方法についてでした。

Udemyの動画学習でもPythonを勉強しよう!

「平日の夜の勉強会には時間が間に合わなくて参加できない」「通勤時間のわずかな隙間時間を勉強時間にあてたい」「本ではよく分からないところを動画で理解を深めたい」そんなあなたはUdemyの動画学習がお勧めです!

UdemyのPythonおすすめ33講座レビューリスト
HOSL

Author HOSL

More posts by HOSL