【问题标题】:Python colored text to the terminal [duplicate]Python彩色文本到终端[重复]
【发布时间】:2021-07-18 07:41:14
【问题描述】:

我们可以在 Python 的终端中设置彩色文本或前景色文本。我已经通过了这个 SO's answer。一些示例颜色代码在这里

class bcolors:
    HEADER = '\033[95m'
    OKBLUE = '\033[94m'
    OKCYAN = '\033[96m'
    OKGREEN = '\033[92m'
    WARNING = '\033[93m'
    FAIL = '\033[91m'
    ENDC = '\033[0m'
    BOLD = '\033[1m'
    UNDERLINE = '\033[96m'

print(f"{bcolors.OKGREEN}Yes we can set any Hex color in terminal?{bcolors.ENDC}")

一切正常。但是您可能会注意到我们需要设置一些颜色代码。在挖掘驱动器之后,我找到了来自 Microsoft docs 的其他颜色代码源。我有两个问题。

  • BOLD = '\033[1m' 之类的代码是什么意思(模式的意思)?
  • 我们可以在终端中转换/使用任何十六进制颜色代码吗? 颜色来源有限,可以在终端中使用任何十六进制代码吗?

【问题讨论】:

  • Wiki has an excellent 文章。就个人而言,我经常参考这个页面。它还提供转义序列和颜色。

标签: python terminal output ansi-colors


【解决方案1】:

ANSI Escape Codes

ANSI 转义码允许您在终端中做很多漂亮的事情。您可以更改字体颜色、字体样式(粗体、斜体、下划线等...),还可以移动光标覆盖之前的文本,使文本动态变化。

建筑规范

基本上,代码是这样构建的:

\033[XXXm

其中XXX 是一系列以分号分隔的参数。

  • 它们以 \033[ 开头(或上面指定的任何代码 + [)
  • 那么,包含任意数量的整数,用 ; 分隔
  • 它们以 m 结尾

仅包含 0 的代码(即 \x1B[0m)将重置字体的任何样式属性。

大多数时候,您会打印一个更改终端样式的代码,然后打印某个字符串,然后是重置代码。

以下是可用于更改字体颜色或背景颜色的代码。

| Color                                  | Font code        | Background code  |
|----------------------------------------|------------------|------------------|
| Black                                  | \x1B[30m         | \x1B[40m         |
| Red                                    | \x1B[31m         | \x1B[41m         |
| Green                                  | \x1B[32m         | \x1B[42m         |
| Yellow                                 | \x1B[33m         | \x1B[43m         |
| Blue                                   | \x1B[34m         | \x1B[44m         |
| Magenta                                | \x1B[35m         | \x1B[45m         |
| Cyan                                   | \x1B[36m         | \x1B[46m         |
| White                                  | \x1B[37m         | \x1B[47m         |
| Any palette color (with V in [0-255])  | \x1B[38;5;Vm     | \x1B[48;5;Vm     |
| Any RGB color (with values in [0-255]) | \x1B[38;2;R;G;Bm | \x1B[48;2;R;G;Bm |

【讨论】:

    【解决方案2】:

    您在这里处理的是 ANSI 转义码

    都遵循\033[XXXm的模式。您可以有多个与此相关的说明,而不仅仅是您列出的那个。

    对于终端中的颜色代码,它取决于系统。最基本的终端有一组8种不同的颜色:

    • 黑色:\u001b[30m
    • 红色:\u001b[31m
    • 绿色:\u001b[32m
    • 黄色:\u001b[33m
    • 蓝色:\u001b[34m
    • 洋红色:\u001b[35m
    • 青色:\u001b[36m
    • 白色:\u001b[37m
    • 重置:\u001b[0m

    【讨论】:

    • 得到了固定点,但我正在寻找其他方法来设置 hex 颜色。
    猜你喜欢
    • 2011-07-22
    • 2021-03-01
    • 1970-01-01
    • 2010-09-22
    • 1970-01-01
    • 2011-04-04
    • 1970-01-01
    • 2011-02-06
    相关资源
    最近更新 更多