在python中以普通打印方式打印sys.stderr

时间:2015-08-19 09:10:50

标签: python

最近我写了一些代码,我想用最少的格式来格式化我的输出,这样我就可以组合sys.stderrprint来打印一些更重要的红色部分。它工作得很好,但是当我尝试打印“正常”-i.e.使用print - 在sys.stderr语句之后使用comma在同一行中使用print的一些红色文本,然后是下一个标准{{1} }语句解释器在可打印文本之前插入print。我怎么能避免这个?

space

输出:

import sys

print "nana", "dada %d " % 2, 
print >> sys.stderr, "hey"

print "nana", "dada %d" % 2,
print >> sys.stderr, " hey"

注意:我不想使用任何第三方模块,因为我主要在nana dada 2 hey nana dada 2 hey 的内部控制台中使用我的代码,因此我看不到任何其他颜色,而不是{{1}红了。

1 个答案:

答案 0 :(得分:1)

由于您使用两个不同的文件,因此空间的自动插入会变得混乱。您应该使用sys.stdout.write()或sys.stderr.write()写入两个文件中的至少一个。例如:

print "nana", "dada %d " % 2,
sys.stderr.write("hey")         # no newline
print                           # print the newline here