Python で標準エラーstderr に出力する

Syed Moiz Haider 2023年10月10日
  1. Python 2.x で stderr にメッセージを出力する
  2. logging モジュールを用いて stderr にメッセージを出力する
Python で標準エラーstderr に出力する

このチュートリアルでは、Python で標準エラー出力である stderr に書き込む方法を説明します。また、シンタックスが時代とともに変化してきたため、stderr への書き方の違いを説明するために、いくつかのコード例を挙げています。

Python 3.x で stderr に書き込む

Python 3.x では、print 関数には出力先を指定するためのキーワード引数 file があります。デフォルトでは sys.stdout ですが、sys.stderr やファイルパスであっても構いません。

file=sys.stderr の場合は stderr にメッセージを出力します。以下にコード例を示します。

import sys

print("Error", file=sys.stderr)

出力:

Error

Python 2.x で stderr にメッセージを出力する

Python 2.x では、print ステートメントはメッセージを stdoutstderr, あるいはファイルパスのような file-like 宛先に出力することができます。この file-like オブジェクトは >> の後に指定されます。以下の例を参照してください。

import sys

print >>sys.stderr, "Error Detected!"

出力:

Error Detected!

sys.stderr を使用して stderr に出力する

Python の sys モジュールは貴重な情報と主要な機能を提供します。sys.stderr.write() メソッドを使用することができます。sys.stderr に与えられたパラメータとしてメッセージを出力する sys.stderr.write() メソッドを使用することができます。以下の例を参照してください。

import sys

sys.stderr.write("Error!")

出力:

Error!

logging モジュールを用いて stderr にメッセージを出力する

Python の logging モジュールは、メッセージをログに記録するために特別に作られています。logging モジュールは、基本設定を行った後に stderr に出力するために利用することができます。logging.basicConfig()message の形式を入力として受け取り、logging.getLogger()logging のオブジェクトを返します。log.warning()warning のテキストを受け取り、それを stderr に出力します。

このアプローチの基本的な例を以下に示します。

import logging

logging.basicConfig(format="%(messages)s")
log = logging.getLogger()

log.warning("Error Found!")

出力:

Error Found!
Syed Moiz Haider avatar Syed Moiz Haider avatar

Syed Moiz is an experienced and versatile technical content creator. He is a computer scientist by profession. Having a sound grip on technical areas of programming languages, he is actively contributing to solving programming problems and training fledglings.

LinkedIn

関連記事 - Python Print