如何在Python中打印到stderr?

如何在Python中打印到stderr?

有几种方法可以写入stderr:


# Note: this first one does not work in Python 3

print >> sys.stderr, "spam"


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


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


from __future__ import print_function

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

这似乎与Python#13 †的禅宗相矛盾,那么这里有什么区别,这种方式有哪些优点或缺点?应该使用哪种方式?


† 应该有一个 - 最好只有一个 - 显而易见的方法。


米脂
浏览 4919回答 3
3回答

拉风的咖菲猫

我发现这是唯一一个短+灵活+便携+可读:from __future__ import print_functionimport sysdef 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
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python