[英]How do I print colored text in IDLE's terminal?
这是一个很容易重复的问题——因为它是。 但是,对此有很多不充分的答案(例如尝试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 使用的配色方案。 所以我建议你用它来突出显示,而不是用来制作一个程序来询问某个单词的颜色是什么。
您也可以使用clrprint
模块在空闲、终端和 Powershell 中打印彩色文本。
安装:
pip install clrprint
用法:
from clrprint import *
clrhelp() # to see colors available
user_input = clrinput('INPUT MESSAGE', clr='green') # just like input()
clrprint('YOURTEXT', user_input, clr='color') # just like print()
根据为什么在控制台中写入标准输出会附加在 Python 3 中写入的字符数? "... write 还会返回字符数(实际上是字节数,试试 sys.stdout.write('へllö')) 由于python控制台将每个表达式的返回值打印到stdout,所以将返回值附加到实际打印值。”
用
_ = color.write("Hello world","COMMENT")
“吃掉”额外的输出。 _
是一个“一次性”变量,请参阅Python 中单下划线“_”变量的用途是什么?
长度的strnage输出是带return
关键字的, NORMAL
也是颜色
我面临的问题是如何在 IDLE 中正确输出错误消息,因为sys.exc_info()
像正常输出一样打印,而traceback.print_exc()
有点太长和太详细。 所以,我只想像“traceback”一样用红色打印异常。
感谢顶级回答者让我了解如何使用 write() 指定我的消息类型。 偶然地,我找到了另一种方法,通过在 print() 时简单地添加file=sys.stderr
来满足我的需求。 然后我会收到一条引人注目但简短的错误消息。 python 3.6中的一个例子:
import sys
try:
1/0
except Exception as e:
print(repr(e), file=sys.stderr)
简短的回答:不,不可能在 IDLE shell 中为不同的输出着色。
您可以更改整个颜色主题的唯一颜色更改,但这会影响所有打印的字符串。 如果您需要彩色输出,您可能应该放弃像 IDLE 这样的基本 IDE 或至少比基本 IDLE shell 更完整的 shell。 请参阅此副本: 在空闲时更改打印文本颜色?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.