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
ステートメントはメッセージを stdout
、stderr
, あるいはファイルパスのような 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 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