利用Python控制终端打印字体的颜色和格式

简介: 利用Python控制终端打印字体的颜色和格式

利用Python控制终端打印字体的颜色和格式—操作详解(ANSI转义序列)
一、问题描述
二、ANSI转义序列
三、具体代码和显示效果(看懂这段代码,以后可随心控制字体的打印格式)
欢迎学习交流!
邮箱: z…@1…6.com
网站: https://zephyrhours.github.io/

一、问题描述
使用python编程时,改变控制台或终端中输出字体的颜色和格式,会显著提升代码质量,快速帮助我们定位问题和锁定重要输出。但是一般情况下,python控制台输出的字体默认为白色。具体如下:

在控制台打印很多相同的格式文字时,并不利于我们查找和定位想要的输出。

二、ANSI转义序列
下面简单讲一下ANSI转义序列,这里不重复讲述概念,想要了解ANSI转义序列是什么意思,可自行查找。举个简单例子来说:

\033[31m 是一个ANSI转义序列,它告诉终端将后续文本的颜色设置为红色;
\033[0m是另外一个ANSI转义序列,它告诉终端将后续文本的颜色重置为默认颜色;
总之,ANSI 转义序列是一种用于在控制台中输出格式化文本的标准,它由一系列以 ESC 开头的字符组成,后跟一个或多个参数和一个字母,以指示需要执行的操作。常见的指令字母包括 m、H、J、K、s 和 u,常见的参数包括 0-8、30-37 和 40-47。

下面给出一些简单的指令参数:

指令字母 操作
m 设置文本属性
H 设置光标属性
J 清除屏幕
K 清除行
s 保存光标位置
u 恢复光标位置
在参数中,分号用来分隔不同的参数,常见的参数包括:

参数 含义
0 关闭所有属性
1 设置粗体
2 设置弱化(半亮)
3 设置斜体
4 设置下划线
5 设置闪烁(慎用)
7 设置反显
8 设置消隐
30-37 设置前景色(字体颜色)
40-47 设置背景色
三、具体代码和显示效果(看懂这段代码,以后可随心控制字体的打印格式)
要在Python中打印特定的字体格式或颜色(控制台,终端),可以通过上面的ANSI转义序列来操作,下面给出设置前景色、设置背景色和设置显示方法的几种演示代码和效果,具体代码如下:

设置输出的前景色代码,也就是设置输出的显示字体代码:

输出前景色(字体颜色)

print('-----------------------------------------------------')
print('输出前景色(字体颜色):')
print("\033[30m This text is foreground black.\033[0m")
print("\033[31m This text is foreground red.\033[0m")
print("\033[32m This text is foreground green.\033[0m")
print("\033[33m This text is foreground yellow.\033[0m")
print("\033[34m This text is foreground blue.\033[0m")
print("\033[35m This text is foreground magenta.\033[0m")
print("\033[36m This text is foreground cyan.\033[0m")
print("\033[37m This text is foreground white.\033[0m")
1
2
3
4
5
6
7
8
9
10
11
具体效果如下:

设置输出的背景色代码:

输出背景色

print('-----------------------------------------------------')
print('输出背景色:')
print("\033[40m This text is background black.\033[0m")
print("\033[41m This text is background pink-red.\033[0m")
print("\033[42m This text is background dark-green.\033[0m")
print("\033[43m This text is background yellow-red.\033[0m")
print("\033[44m This text is background light-blue.\033[0m")
print("\033[45m This text is background pink.\033[0m")
print("\033[46m This text is background light-green.\033[0m")
print("\033[47m This text is background grey color.\033[0m")
1
2
3
4
5
6
7
8
9
10
11
具体效果如下:

设置输出的显示方式代码,具体如下:

输出显示方式

print('-----------------------------------------------------')
print(" This text is default.") # 默认白色
print("\033[0m This text is default.\033[0m") # 默认值

print("\033[1m This text is bold.\033[0m") # 加粗
print("\033[4m This text is underline.\033[0m") # 下划线
print("\033[5m This text is flicker.\033[0m") # 闪烁
print("\033[7m This text is reverse display.\033[0m") # 反显

前面加上2就是非XX

print("\033[22m This text is non bold.\033[0m") # 非粗体
print("\033[24m This text is non underline.\033[0m") # 非下划线
print("\033[25m This text is non flicker.\033[0m") # 非闪烁
print("\033[7m This text is non reverse display.\033[0m") # 非反显
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
具体效果如下:

其他的组合方式可以自行探索,通过组合不同的ANSI命令,即可获得不同的显示效果。

参考博客:

https://blog.51cto.com/u_16175460/9544346

相关文章
|
12天前
|
存储 JSON JavaScript
【chat-gpt问答记录】python将数据存为json格式和yaml格式
【chat-gpt问答记录】python将数据存为json格式和yaml格式
26 1
|
17天前
|
存储 JSON JavaScript
使用Python处理JSON格式数据
使用Python处理JSON格式数据
|
21天前
|
关系型数据库 数据库连接 数据库
Python执行PG数据库查询语句:以Markdown格式打印查询结果
使用Python的`psycopg2`和`pandas`库与PostgreSQL交互,执行查询并以Markdown格式打印结果。首先确保安装所需库:`pip install psycopg2 pandas`。接着建立数据库连接,执行查询,将查询结果转换为DataFrame,再用`tabulate`库将DataFrame格式化为Markdown。代码示例包括连接函数、查询函数、转换和打印函数。最后限制列宽以适应输出。
|
11天前
|
算法 计算机视觉 Python
【python工具】WebP格式转成JPG、PNG和JPEG
平时在网上搜索图片,另存为时常常遇到 WebP 格式,而非常见的 JPG、PNG、JPEG 格式,所以以此文记录一下WebP的读取和转换方法,希望对大家有所帮助!🥸
|
17天前
|
编解码 Linux 计算机视觉
python 调用ffmpeg使用usb摄像头录制视频,输出h264格式,自动获取摄像头的最佳帧率和最大画面尺寸
使用 Python 调用 FFmpeg 进行 USB 摄像头视频录制,需先确保安装 FFmpeg 和 Python 的 `subprocess` 模块。代码示例展示了如何自动获取摄像头的最佳帧率和最大分辨率,然后录制视频。首先通过 FFmpeg 列出摄像头格式获取信息,解析出帧率和分辨率,选择最优值。之后调用 FFmpeg 命令录制视频,设置帧率、分辨率等参数。注意 `/dev/video0` 是 Linux 的摄像头设备路径,Windows 系统需相应调整。代码中未直接实现自动获取最佳参数,通常需要借助其他库如 OpenCV。
|
16天前
|
API Python
Python终端美化——rich
Python终端美化——rich
|
17天前
|
Python
python3关于time时间的各种格式
python3关于time时间的各种格式
18 3
|
13天前
|
存储 JSON JavaScript
Python 中怎样做数据交换格式
**摘要:** 本文介绍了JSON在数据交换和存储中的重要性,因其易读性和灵活性。Python使用内置的`json`模块来操作JSON文件,包括序列化和反序列化。`json.loads()`用于将JSON字符串转换为Python对象,而`json.load()`从JSON文件中加载数据。相反,`json.dumps()`将Python对象转换为JSON字符串,`json.dump()`则写入到文件。文中还展示了`json.dumps()`的不同参数,如`indent`和`sort_keys`,用于美化输出和排序。
|
13天前
|
开发工具 Python
[oeasy]python0021_宝剑镶宝石_爱之石中剑_批量替换_特殊字符_特殊颜色
在这个文本中,作者描述了一个逐步修改Python游戏`game.py`的过程,以将小丑的眼睛和石中剑的图形替换为爱心符号,并且将其颜色更改为红色。以下是内容的摘要: - 用户回顾了之前对`game.py`的分析和理解。 - 通过使用方向键和编辑模式,在代码中找到了小丑眼睛和石中剑的位置,用爱心符号(❤)替换了它们。 - 如果遇到问题,建议使用最新版的火狐浏览器进行粘贴操作。 - 使用Vim编辑器的命令模式批量替换了剑柄上的数字8为爱心,使整个剑柄充满了爱心。 - 通过插入特定代码,将爱心变为红色,从而得到红色的“爱之大剑”。
14 0
|
17天前
|
Python
Python基础教程(第3版)中文版 第20章 项目1: 自动添加标签(纯文本转HTML格式) (笔记2)
Python基础教程(第3版)中文版 第20章 项目1: 自动添加标签(纯文本转HTML格式) (笔记2)