Python で stderr に出力するにはどうすればよいですか? 質問する

Python で stderr に出力するにはどうすればよいですか? 質問する

stderr に書き込む方法はいくつかあります。

print >> sys.stderr, "spam"  # Python 2 only.

sys.stderr.write("spam\n")

os.write(2, b"spam\n")

from __future__ import print_function
print("spam", file=sys.stderr)

これらの方法の違いは何ですか? どちらの方法を優先すべきでしょうか?

ベストアンサー1

これが、短く、柔軟性があり、移植性があり、読みやすい唯一のものであることがわかりました。

import sys

def eprint(*args, **kwargs):
    print(*args, file=sys.stderr, **kwargs)

オプション関数はeprint繰り返しを省きます。標準関数と同じように使用できますprint

>>> print("Test")
Test
>>> eprint("Test")
Test
>>> eprint("foo", "bar", "baz", sep="---")
foo---bar---baz

おすすめ記事