如何在Python中打印到stderr?有几种方法可以写入stderr:# Note: this first one does not work in Python 3print >> sys.stderr, "spam"sys.stderr.write("spam\n")os.write(2, b"spam\n")from __future__ import print_functionprint("spam", file=sys.stderr)这似乎与Python#13 †的禅宗相矛盾,那么这里有什么区别,这种方式有哪些优点或缺点?应该使用哪种方式?† 应该有一个 - 最好只有一个 - 显而易见的方法。
3 回答

拉风的咖菲猫
TA贡献1995条经验 获得超2个赞
我发现这是唯一一个短+灵活+便携+可读:
from __future__ import print_function
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
添加回答
举报
0/150
提交
取消