如何在IDLE终端中打印彩色文本?

问题描述 投票:3回答:4

这很容易成为一个重复的问题 - 因为它是。但是,对此有很多不充分的答案(例如尝试curses! - 指向26页的文档)。

我只是想在IDLE输出时用蓝色以外的颜色打印文本。可能吗?有什么简单的方法可以做到这一点?我在Windows上运行Python 3.6。

请举例说明。

(我发现ANSI代码在IDLE中不起作用,只在终端上有效。)

python python-3.x colors python-idle
4个回答
9
投票

把它放在你的代码的“开始”:

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")

这打印:

Prints


注意:这不会自动输入回车(就像在print函数/语句中一样)。所以,当你打印时将\n放在最后一个字符串的末尾来放置它。

你可以放的“颜色”是:SYNCstdinBUILTINSTRINGconsoleCOMMENTstdoutTODOstderrhitDEFINITIONKEYWORDERRORsel

注2:这取决于您用于IDLE的配色方案。所以我建议你用它来突出显示,而不是制作一个程序来询问颜色是什么字。


1
投票

根据Strange output when writing to stdout in console“... write也将返回字符数(实际上,字节,尝试sys.stdout.write('へllö'))当python控制台将每个表达式的返回值打印到stdout时,返回值附加到实际印刷值。“

使用

dummy = color.write("Hello world","COMMENT")

“吃掉”额外的产量。


-1
投票

简短回答:不,不可能在IDLE shell中为不同的输出着色。

唯一的颜色更改可以让您更改整个颜色主题,但这会影响所有打印的字符串。如果你需要彩色输出,你可能应该从IDLE这样的基本IDE或至少比基本IDLE shell更完整的shell切换。看到这个副本:Change printed text color in Idle?


-1
投票

我遇到的问题是如何在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)
© www.soinside.com 2019 - 2024. All rights reserved.