Python で標準エラー出力へ出力する (sys.stderr)

標準エラー出力への出力

Python の print の出力先を標準エラー出力 (STDERR) にするには、file オプションで sys.stderr を指定します。

標準エラー出力への出力
import sys

# ...
if not is_valid_config():
    print("Error: invalid configuration", file=sys.stderr)
    sys.exit(1)

ちなみに、file 引数には write メソッドを持っているオブジェクトを渡せるようになっています。 sys.stderr オブジェクトも write メソッドを持っているので、上記のように file 引数に渡すことができます。

上記の例では、標準エラーにメッセージ出力をして、さらに sys.exit(1) でプログラムをエラー終了させていますが、実はこの処理は、sys.exit 関数にエラーメッセージを渡すことで 1 行で記述できます。

標準エラーへ出力してエラー終了する
sys.exit("Error: invalid configuration")

コラム: Python2 までの方法

Python2 までは下記のように標準エラー出力に出力することができました。

古い Python2 のやり方
import sys

print >> sys.stderr, 'エラーメッセージ'