ANSI 转义颜色代码在 Python 终端中不起作用

问题描述 投票:0回答:1

我尝试“着色”我的终端,但总是失败! 在 Atom Terminal 中它工作得完美,就像真的一样,在 Python 控制台中我得到了这个输出

←[95mColored Text
。这很奇怪,也许你们有想法。

我的代码

class color:
    HEADER = '\033[95m'
    BLUE = '\033[94m'
    CYAN = '\033[96m'
    GREEN = '\033[92m'
    WARNING = '\033[93m'
    FAIL = '\033[91m'
    ENDC = '\033[0m'
    BOLD = '\033[1m'
    UNDERLINE = '\033[4m'

choose= input(color.HEADER + "Colored Text")
python colors
1个回答
0
投票

请注意,所有终端或操作系统都支持相同的 ANSI 转义码颜色,并且并非所有语言都支持

\033[
作为控制序列引入器 (CSI)。您是否尝试过使用 CSI 的
\x1b[
\u001b[
\u1b[
变体?

此外,建议每次您想要恢复为默认终端文本样式时使用

\033[0m
。否则,任何颜色或样式都可能溢出并进入其他终端消息。只是更新您的示例:

class color:
    HEADER = '\033[95m'
    OFF = '\033[0m'

choose = input(color.HEADER + "Colored Text" + color.OFF)

但是为什么要从头开始编写所有代码呢?有几个 Python 包可以解决你的问题。坦白说,我是 Colorist 包的作者。 Colorist 是轻量级且简洁的。只需使用

pip install colorist
安装软件包并参考 背景颜色选项

前景色的其他选项:

from colorist import red

red("some text in red color")

有时你可能想要对终端样式有更多的控制,所以你也可以这样做:

from colorist import Color

print(f"Only {Color.CYAN}this part{Color.OFF} is in colour")

© www.soinside.com 2019 - 2024. All rights reserved.