无法在终端上进行彩色打印

Posted

技术标签:

【中文标题】无法在终端上进行彩色打印【英文标题】:Not able to print in color on terminal 【发布时间】:2018-04-17 16:47:35 【问题描述】:

正如Print in terminal with colors using Python? 的回答中所给出的,我正在尝试使用以下代码在控制台/终端上进行彩色打印:

RED = "\e[31m"
NORMAL = "\e[0m"

print("TESTING")
print(RED+"TESTING"+NORMAL)
print("TESTING")

但是,它不起作用,只给出以下输出:

TESTING
\e[31mTESTING\e[0m      # IN BLACK, THOUGH IT IS SHOWING COLOR HERE.
TESTING

问题出在哪里,如何解决?我在 Debian Stable Linux 上使用 Python 3.5.3 版。

【问题讨论】:

\e 不是启用颜色的正确转义序列。您是否正确阅读了答案? 我指的是@IgorSarcevic 的回答并使用脚本中的上述代码。 那个使用\e单一答案是错误的。 \e 是不同 shell 中的转义序列,而不是 Python 中的转义序列。我对此发表了评论,说明它是如何错误的;答案甚至在 bash 中都不起作用。 您的问题链接到整个问题,而不是特定答案,我必须搜索它(它只在按投票排序时出现在第 2 页上)。 【参考方案1】:

你找到了错误的答案; \e 在 Python 中不是有效的转义序列。在某些echo 实现中,\e 是ASCII ESC character 的转义序列,但在Python 中您需要使用不同的表示法。

该页面上的其余答案使用正确的形式,\x1b\033

【讨论】:

以上是关于无法在终端上进行彩色打印的主要内容,如果未能解决你的问题,请参考以下文章

Python colorama | 详解终端漂亮的彩色打印怎么实现的

Linux终端彩色打印+终端进度条

linux下命令行的彩色终端

python终端彩色打印(termcolor)

终端打印彩色进度条

Python终端输出打印彩色字体的方法