将Python彩色文本添加到终端

2024-09-28 22:56:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我们可以用Python在终端中设置彩色文本或前景色文本。我已经经历了这一切。下面是一些示例颜色代码

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}")

一切都很好。但是你可能会注意到我们有一些颜色代码要设置。在挖掘驱动器之后,我从微软找到了一些其他的颜色代码源。我这里有两个问题

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

Tags: 代码文本终端示例class经历彩色header
2条回答

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

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

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

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

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 |

相关问题 更多 >