一、ANSI 转义序列
- ANSI 转义序列是一种用于在控制台中输出格式化文本的标准。
它由一系列以 ESC(ASCII 码 27)开头的字符组成,后跟一个或多个参数和一个字母,以指示需要执行的操作。
ANSI 转义序列最初是为了在终端上输出彩色文本而设计的,但它们也可以用于设置文本样式、移动光标等。
二、格式
\033[<parameter1>;<parameter2>...<parameterN><letter>
- 其中,\033 表示 ESC,<parameter1>、<parameter2> 等表示参数,<letter> 表示指令字母。
- 不同的指令字母代表了不同的操作,如下表所示:
m | 设置文本属性 |
H | 设置光标位置 |
J | 清除屏幕 |
K | 清除行 |
s | 保存光标位置 |
u | 恢复光标位置 |
- 在参数中,分号用于分隔不同的参数。
- 常见的参数包括:
0 | 关闭所有属性 |
1 | 设置粗体 |
2 | 设置弱化(半亮) |
3 | 设置斜体 |
4 | 下划线 |
5 | 闪烁(慎用) |
7 | 反显 |
8 | 消隐 |
30-37 | 设置前景色 |
40-47 | 设置背景色 |
- 例如,要将文本颜色设置为红色,我们可以使用以下 ANSI 转义序列:
print("\033[36m", "Hello!","\033[0m") - 16色指令基本格式:
"\033[0;文本颜色;背景色m 要打印的文字 \033[0m"
\033 是 Escape 键的 ASCII 值(8进制),也可以写成 \x1b(16进制),
后面的 \033[0m 是用来恢复终端默认颜色,
例如:print("\033[0;31;42m 要打印的文字 \033[0m")
打印出来是绿底红字。 -
256色指令
三、程序
import os
os.system('' )
def colors_16(color):
return("\033[2;{num}m {num} \033[0m".format(num=str(color)))
def colors_256(color):
num1 = str(color) # 颜色码,用来控制前景颜色
num2 = str(color).ljust(3,' ') # 用来显示颜色对应数字
if color % 16 == 0: # 每行打印16个颜色
return(f" \033[38;5;{num1}m {num2} \033[0m \n")
else:
return( f" \033[38;5;{num1}m {num2} \033[0m")
print("16 色颜色代码:",)
print(''.join([colors_16(x) for x in range(30,38)]))
print("\n256 色颜色代码:")
print(''.join([colors_256(x) for x in range(256)]))
input("\n按回车键退出.")