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