繁体   English   中英

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

[英]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放在最后一个字符串的末尾以放置它。

您可以放置​​的“颜色”是: SYNCstdinBUILTINSTRINGconsoleCOMMENTstdoutTODOstderrhitDEFINITIONKEYWORDERRORsel

注意 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM