我想改变输出文本的颜色。例如:
print("This text should be in Blue")
print("This text should be in red")
我已经阅读并尝试了各种方法但没有成功。在IDLE中更改颜色的最简单方法是什么。
由于
我已经浏览过其他帖子中的建议但是我将以下蓝色字体打印到屏幕上:
[91 mp红色[91m
]答案 0 :(得分:1)
答案是你不能按照原样做你想做的事。
使用Idle运行Python代码时,由于以下原因,无法以编程方式更改stdout文本输出的显示颜色。 Idle Shell和Editor窗口包含tkinter Text小部件,它们用作tcl / tk gui框架中文本小部件的代理。 Shell提示符下的语句或编辑窗口中的代码在单独的进程中运行。空闲捕获发送到stdout和stderr的字符串,将字符串插入文本小部件,并告诉tk为文本着色为蓝色或红色(或者您在选项中选择的任何内容 - >>配置空闲 - >突出显示)。
在代码中导入textcolor,colorama或任何其他模块可以更改发送到stdout的字符串。但是,当它们在Text小部件中显示时,它们不会更改Idle代码处理字符串的方式。无论是空闲还是tkinter都不能解释文本。在Windows上,print('\033') and
打印(' \ x1b')`显示左箭头。 (当复制到SO答案编辑框时,ESC显示为0,0,1,B的正方形。当显示答案时,ESC被忽略,没有任何显示。)
我想到了在空闲时添加一个选项来在控制台窗口中运行编辑器代码,而不涉及Idle。另一个想法是Text子类,它在插入文本之前解释ANSI代码,包括颜色代码。第一个很容易;第二个将需要更多的工作;两者在不同的情况下都会有用,而且两者都在将来。