无法在终端上进行彩色打印
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
。
【讨论】:
以上是关于无法在终端上进行彩色打印的主要内容,如果未能解决你的问题,请参考以下文章