Pythonのプログラムを終了する
Pythonのスクリプトで、条件分岐した結果スクリプトを終了したいときには、sysモジュールのexitメソッドを呼び出します。
目次
sys.exit()メソッド
sys.exit([arg])
変数 |
内容 |
---|---|
arg |
省略可。終了ステータス、またはエラー出力。 |
sys.exit()はPythonを終了します。 argが0の時は正常終了、argが0以外の整数の場合は異常終了になります。 argに数値以外を指定した場合は、標準エラー出力にそれが出力されます。
bashで試してみる
bashでPython3を使って試してみました。
こんなスクリプトです。
import sys
print('標準出力')
sys.exit()
標準出力に「標準出力」と出力して、終了するだけのものです。
bashで、こんな感じに実行してみます。
$ python test.py > result.txt && python test.py >> result.txt
test.pyの実行結果をファイルにリダイレクトして成功だったら、もう一度test.pyを実行してファイルに追記するというものです。
実行結果では画面には何も表示されず、ファイルの中身はこうなります。
標準出力
標準出力
test.pyが2回実行されたことがわかります。
こんな感じで、いくつかのパターンを試してみます。
まず、exit()の引数を0にした場合です。
スクリプト
import sys
print('標準出力')
sys.exit(0)
画面
$ python test.py > result.txt && python test.py >> result.txt
$
result.txtの中身
標準出力
標準出力
次に、exit()の引数を1にした場合です。
スクリプト
import sys
print('標準出力')
sys.exit(1)
画面
$ python test.py > result.txt && python test.py >> result.txt
$
result.txtの中身
標準出力
1回目のtest.pyが標準出力にした後に異常終了したので、2回目のtest.pyが実行されませんでした。そのため、result.txtには1回目の結果しか出力されていません。
それでは、エラーメッセージを指定してみます。
スクリプト
import sys
print('標準出力')
sys.exit('エラー')
画面
$ python test.py > result.txt && python test.py >> result.txt
エラー
$
result.txtの中身
標準出力
1回目のtest.pyが標準出力にした後に異常終了して標準エラー出力(コンソール)に「エラー」と出力されました。その時点でスクリプトが停止されて、2回目のtest.pyが実行されませんでした。そのため、result.txtには1回目の結果しか出力されていません。
正常な出力とエラー出力を分けたい場合に便利ですね。
公開日
広告
Pythonカテゴリの投稿
- PythonからWindows RuntimeのAPIを使ってみる
- Pythonから外部のアプリケーションを実行する
- PythonでApacheのログを読む
- PythonでURLを結合する
- PythonでURLを解析する
- Pythonでtar.gzなファイルを解凍(展開)する
- Pythonでwavファイルを書き出す
- Pythonでwavファイルを読み込む
- Pythonでデータを整形して出力する
- Pythonでハミング窓関数を作る(SciPy編)
- Pythonでブール値を数値に変換する
- Pythonでモジュールをインポートする
- Pythonで数値を比較する
- Pythonで文字の内容から真偽値の判定をする
- Pythonで自前の関数を定義する
- Pythonで論理演算する
- Pythonのprint関数で改行せずに出力する
- Pythonのプログラムを終了する
- Pythonの関数には参照を渡す
- Windows10 バージョン1703 Creators Update にPythonとSphinxをインストール
- Windwos10 バージョン1703 Creators Update にPythonとSphinxをインストール (Anaconda編)
- reStructuredTextの表
- ダウンロードしたファイルのチェックサムをPythonで確認してみた
- 反復処理 (while)
- 反復処理(for)
- 条件分岐
- 自作のモジュールをインポートする