"""
ASCII 码的 0-31 和 127 被称为 C0 控制字符
例如 \07 就是 BEL, 响铃 (\0 表示八进制)
其中 \033 (十进制27, 十六进制x1B) 是 ESC, 转义字符, 它可以用于转义序列
如 \033[ 表示序列导入 (Control Sequence Introducer),简写为 CSI
两个字节的序列可以合并为 0x80-0x9F 范围内的单个字节, 即 C1 控制字符
所以 \033[ 可以合并写作 \x9b
ANSI转义序列中以 ESC [ 开头的叫作 Control Sequence Introducer
大致可分四类:光标移动指令、清屏指令、字符渲染(Graphic Rendition)指令和终端控制指令
「ESC n m」用于选择图形再现 (SGR), n 的取值范围是 0-107, 一类控制字符显示样式,另一类控制显示颜色
SGR参数列表
格式:\x9b显示方式;前景色;背景色m
显示方式 意义
-------------------------
0 终端默认设置
1 高亮显示
4 使用下划线
5 闪烁
7 反白显示
8 不可见
前景色 背景色 颜色
---------------------------------------
30 40 黑色
31 41 红色
32 42 绿色
33 43 黃色
34 44 蓝色
35 45 紫红色
36 46 青蓝色
37 47 白色
例子:
\x9b1;31;40m 1-高亮显示 31-红色前景 40-黑色背景
\x9b0m 采用终端默认设置,即取消颜色设置
在 Windows 的 cmd 和 powershell 终端,不支持 CSI,可以用 colorama 的 init() 解决:
import colorama
colorama.init()
"""
dic = {
0: '默认',
1: "加粗或高亮",
3: "斜体",
4: "下划线",
7: "反显",
8: "不可见",
9: "删除线",
30: "黑色前景",
31: "红色前景",
32: "绿色前景",
33: "黃色前景",
34: "蓝色前景",
35: "紫红色前景",
36: "青蓝色前景",
37: "白色前景",
40: "黑色背景",
41: "红色背景",
42: "绿色背景",
43: "黃色背景",
44: "蓝色背景",
45: "紫红色背景",
46: "青蓝色背景",
47: "白色背景",
}
for i in dic:
info = dic[i]
if not info:
continue
print(f'{i:>2d}: \x9b{i}m {info} \x9b0m')
-
Python
543 引用 • 672 回帖
Python 是一种面向对象、直译式电脑编程语言,具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于