更改外壳文本颜色(Windows)[重复]

Posted

技术标签:

【中文标题】更改外壳文本颜色(Windows)[重复]【英文标题】:Changing Shell Text Color (Windows) [duplicate] 【发布时间】:2011-09-26 02:53:12 【问题描述】:

我正在寻找一种方法来更改我的 python 脚本运行时输出的文本颜色。基本思路是这样的:

if (Data < LowerLimit):
    print "Failed" # Output Failed as Red Text
elif (Data > UpperLimit):
    print "Failed" # Red Color
else:
    print "Passed" # Blue Color

这些脚本正在 Windows 机器上用于快速数据分析。

【问题讨论】:

重复,尽管链接问题中的解决方案几乎都不能在 Windows 上运行。 请看这里的答案 => ***.com/a/70599663/3057246 【参考方案1】:

或者关于我找到的最好的模块 http://pypi.python.org/pypi/colorama

【讨论】:

是的 - colorama 实际上适用于 Windows 7 命令提示符。在 Windows 10 之前,ANSI 代码在命令提示符下不起作用(出于某种难以理解的原因)。 Colorama 可以完全透明地使用 Win32 命令 - 这使其工作并易于使用。我很高兴我终于找到了解决这个问题的方法。 @Noiseinthestreet 你能这样吗=> ***.com/a/70599663/3057246【参考方案2】:

这非常简单!您可以利用 windows 操作系统命令,而不是为 python 导入奇怪的模块或尝试长命令。

在 Windows 中,存在用于更改命令提示符文本颜色的命令。你可以在 python 中使用它,从 a 开始:import os

接下来,您需要有一行更改文本颜色,将其放置在您的代码中。 os.system('color 4')

您可以通过启动 cmd.exe 并输入颜色帮助来找出其他颜色。

好的部分?这就是他们的全部内容,简单的代码行。 -天

【讨论】:

这会改变整个控制台的颜色,而不仅仅是之后打印的文本。 对不起那些家伙。我困了,完全误解了这个问题。 它仍然是对 EXTREMELY RELATED question LIKELY TO MARKED DUPLICATE 的有效答案,即如何在 Python 中更改 shell 文本颜色... 赞成,因为虽然它可能不能完全回答原始问题,但这确实回答了我的问题,谷歌将我带到这里。 实际上,如果你运行 os.system('color'),那么 ANSI 转义序列就会神奇地开始在 windows 中工作。【参考方案3】:

尝试查看以下链接:Python | change text color in shell

或在这里阅读:http://bytes.com/topic/python/answers/21877-coloring-print-lines

一般的解决方案是在打印字符串时使用 ANSI 代码。

有一种解决方案可以完全满足您的需求。

【讨论】:

但为什么要投反对票?我的回答有什么问题???? 我已经尝试过他们的解决方案,但它们似乎不适用于 Windows。调用 hilite("Hello", True, False) 时的最佳答案(hilite 函数)导致 '\x1b[32mhello\x1b[om' 打印结果为 ←[32mhello←[0m 而不是彩色打印。此外,curses 库不在 Windows 平台上。 对不起,我已经用pycharm在windows中检查了它,它工作得很好,但是它不适用于python控制台,所以请原谅并容忍我 虽然可行,但打印原始 ANSI 代码充其量只是一个“粗鲁”的解决方案。您不应该期望它在所有控制台中都能正常工作。【参考方案4】:

研究了一段时间,没有得到任何满意的答案,但是......

1) ANSI 转义序列确实可以在 Linux 的终端中工作

2) 如果您可以容忍有限的 colo(u)rs,试试这个:

print("你好", end=''); print("错误", end='', file=sys.stderr);打印(“再见”)

空闲时,“hello”和“goodbye”为蓝色,“error”为红色。

不是很棒,但现在已经足够了,而且很简单!

【讨论】:

也刚刚在 Windows 上尝试过 - 在空闲的“终端”中工作相同,也忘记了您需要:'import sys' 这只是 IDLE 分别为 stdout 和 stderr 着色。这在普通控制台(通常运行脚本)中不会做任何事情

以上是关于更改外壳文本颜色(Windows)[重复]的主要内容,如果未能解决你的问题,请参考以下文章

更改正在键入的文本的颜色 [重复]

更改 QLcdNumber 文本的颜色 [重复]

如何在文本视图中更改单个单词的文本大小和颜色[重复]

Android TextView中的下划线和更改文本颜色[重复]

更改 WinForms RichTextBox 中文本的颜色 [重复]

Windows 窗体文本框字体颜色限时更改