这很容易成为一个重复的问题 - 因为它是。但是,对此有很多不充分的答案(例如尝试curses
! - 指向26页的文档)。
我只是想在IDLE输出时用蓝色以外的颜色打印文本。可能吗?有什么简单的方法可以做到这一点?我在Windows上运行Python 3.6。
请举例说明。
(我发现ANSI代码在IDLE中不起作用,只在终端上有效。)
把它放在你的代码的“开始”:
import sys
try: color = sys.stdout.shell
except AttributeError: raise RuntimeError("Use IDLE")
然后使用color.write(YourText,Color)
进行“打印”:
color.write("Hi, are you called Miharu461? \n","KEYWORD")
color.write("Yes","STRING")
color.write(" or ","KEYWORD")
color.write("No\n","COMMENT")
这打印:
注意:这不会自动输入回车(就像在print
函数/语句中一样)。所以,当你打印时将\n
放在最后一个字符串的末尾来放置它。
你可以放的“颜色”是:SYNC
,stdin
,BUILTIN
,STRING
,console
,COMMENT
,stdout
,TODO
,stderr
,hit
,DEFINITION
,KEYWORD
,ERROR
和sel
。
注2:这取决于您用于IDLE的配色方案。所以我建议你用它来突出显示,而不是制作一个程序来询问颜色是什么字。
根据Strange output when writing to stdout in console“... write也将返回字符数(实际上,字节,尝试sys.stdout.write('へllö'))当python控制台将每个表达式的返回值打印到stdout时,返回值附加到实际印刷值。“
使用
dummy = color.write("Hello world","COMMENT")
“吃掉”额外的产量。
简短回答:不,不可能在IDLE shell中为不同的输出着色。
唯一的颜色更改可以让您更改整个颜色主题,但这会影响所有打印的字符串。如果你需要彩色输出,你可能应该从IDLE这样的基本IDE或至少比基本IDLE shell更完整的shell切换。看到这个副本:Change printed text color in Idle?
我遇到的问题是如何在IDLE中正确输出错误消息,因为sys.exc_info()
打印得像正常输出,而traceback.print_exc()
有点太长和详细。所以,我只想打印红色的Exception,如“traceback”。
感谢顶级的anwser,让我学习如何用write()指定我的消息类型。无意中,我发现了另一种方法,通过在print()中简单地添加file=sys.stderr
来满足我的命令。然后我会得到一个引人注目但短暂的错误消息。 python 3.6中的一个例子:
import sys
try:
1/0
except Exception as e:
print(repr(e), file=sys.stderr)