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