利用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")

具体效果如下:
在这里插入图片描述

  • 设置输出的背景色代码:
# 输出背景色
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")

具体效果如下:
在这里插入图片描述

  • 设置输出的显示方式代码,具体如下:
# 输出显示方式
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")        # 非反显

具体效果如下:
在这里插入图片描述

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

参考博客:

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/751061.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux系统相关函数总结

在应用程序当中,有时往往需要去获取到一些系统相关的信息,譬如时间、日期、以及其它一些系统相关信息,本章将向大家介绍如何通过 Linux 系统调用或 C 库函数获取这些系统信息。除此之外,还会向大家介绍 Linux 系统下的/proc 虚拟文…

Android 13 为应用创建快捷方式

参考 developer.android.google.cn 创建快捷方式 来自官网的说明: 静态快捷方式 :最适合在用户与应用互动的整个生命周期内使用一致结构链接到内容的应用。由于大多数启动器一次仅显示四个快捷方式,因此静态快捷方式有助于以一致的方式执行…

TikTok API接口——获取视频评论信息

一、引言 TikTok,作为全球最受欢迎的短视频社交平台之一,不仅为用户提供了展示才华和分享生活的舞台,也为品牌和企业提供了与年轻用户互动的新渠道。在这个信息爆炸的时代,了解用户的声音、掌握舆论动向显得尤为重要。通过TikTok…

uview中的utabs组件item字数不一致导致滑块偏移

给item单独设置宽度,使滑块计算准确 ::v-deep .u-scroll-box .u-tab-item {width: 80px !important;&:nth-child(3),&:nth-child(4),&:nth-child(5) {width: 60px !important;}flex: 1 1 0% !important; }效果如下:

【TOOL】ceres学习笔记(一) —— 教程练习

文章目录 一、Ceres Solver 介绍二、Ceres 使用基本步骤1. 构建最小二乘问题2. 求解最小二乘问题 三、使用案例1. Ceres Helloworld2. Powell’s Function3. Curve Fitting4. Robust Curve Fitting 一、Ceres Solver 介绍 Ceres-solver 是由Google开发的开源C库,用…

吐血推荐!3款视频生成工具,全部国产,都免费

AI视频大模型的爆发,让创作爆款视频不再是专业人士的能力。 今天二师兄给大家推荐3款免费的视频生成工具。 01 可灵 推荐指数 : 五颗星 先看效果 可灵大模型测试 可灵大模型是快手AI团队自主研发的视频生成大模型,具备强大的视频创作能力&a…

大数据开发需要哪些职场知识

职场是个人情世故的江湖,除了专业技能,成功的大数据开发人员还需要掌握多种职场知识。以下是一些重要的职场知识和技能,结合实际例子详细说明。 目录 理论知识与工程实践理论知识工程实践例子 项目经验总结项目管理总结和反思例子 做事方式方…

【python】OpenCV—Color Map

文章目录 cv2.applyColorMapcv2.putText小试牛刀自定义颜色 参考学习来自 OpenCV基础(21)使用 OpenCV 中的applyColorMap实现伪着色 cv2.applyColorMap cv2.applyColorMap() 是 OpenCV 中的一个函数,用于将灰度图像或单通道图像应用一个颜色…

《PIDNet: A Real-time Semantic Segmentation Network Inspired by PID Controllers》

期刊:CVPR 年份:2023 代码:https://github.com/XuJiacong/PIDNet 摘要 双分支网络架构已经证明了它在实时语义分割任务中的有效性和有效性。然而,高分辨率细节和低频上下文的直接融合的缺点是细节特征很容易被周围的上下文信息…

Qt开发 | Qmake与CMake | Qt窗口基类 | VS Qt项目与QtCreator项目相互转化 | Qt架构 | Qt学习方法

文章目录 一、Qmake与CMake介绍1.Qmake2.CMake3.使用qmake还是cmake? 二、Qt3个窗口基类的区别三、vs qt与QtCreator项目相互转化方法1.QtCreator项目转VS Qt2.VS Qt项目转QtCreator项目 四、Qt架构介绍与学习方法详解 一、Qmake与CMake介绍 Qmake和CMake都是构建系…

vue启动时的错误

解决办法一:在vue.config.js中直接添加一行代码 lintOnSave:false 关闭该项目重新运行就可启动 解决办法二: 修改组件名称

机械装备制造行业MES,实时监控生产流程

装备制造行业MES,是专门为装备制造行业设计的生产信息化管理系统。旨在实时监控装备制造生产流程,实现全流程的精细化管理和监控,提高生产效率、降低生产成本、提升产品质量。 本文将详细介绍装备制造行业MES的概念、技术及应用,…

放大招了|十亿参数大模型LLMs运行功耗仅需13W,内存使用量减少90%!

矩阵乘法(MatMul)历来是大型语言模型(LLMs)总体计算成本的主导因素,尤其在模型向更大维度嵌入和上下文长度发展时,这一成本呈指数级增长。 近期有一篇刚刚发表的论文中提出的方法完全去除了矩阵乘法操作&am…

系统架构师考点--系统配置与性能评价

大家好。今天我们来总结一下系统配置与性能评价的考点内容,这一部分一般是出在上午场的选择题中,占1-2分左右。 一、性能指标 计算机 对计算机评价的主要性能指标有:时钟频率(主频);运算速度;运算精度内存的存储容量…

现在纠结于到底是学stm32好还是Arduino好?

如果你就是要搞单片机,学STM32。 如果你要搞机器人、物联网、机器视觉、自动驾驶,就要学Arduino。 搞单片机,除了STM32之外,重点在于画好原理图和PCB。刚好我有一些资料,是我根据网友给的问题精心整理了一份「stm32的…

HarmonyOS Next开发学习手册——内存管理(GC)

GC(全称 Garbage Collection),即垃圾回收。在计算机领域,GC就是找到内存中的垃圾,释放和回收内存空间。当前主流编程语言实现的GC算法主要分为两大类:引用计数和对象追踪(即Tracing GC&#xff…

【系统架构设计师】计算机组成与体系结构 ③ ( 层次化存储结构 | 寄存器 | 高速缓存 | 内存 | 外存 )

文章目录 一、层次化存储结构1、层次化存储结构2、层次化存储结构 - 示例说明3、程序员可操作的部分 计算机 采用 分级存储结构 , 主要目的是 为了 解决 容量 / 价格 / 速度 之间的矛盾 ; 一、层次化存储结构 1、层次化存储结构 计算机 存储器 按照存储速度 由快到慢 进行排序 …

算法入门:二分查找及其Java实现

在程序开发中,算法是解决问题的核心。本篇博客将详细讲解一种高效的查找算法——二分查找,并通过Java代码示例帮助你理解其实现和应用。 如果你觉得这篇文章对你有帮助,不要忘记点赞、收藏和关注我,这将是对我最大的支持和鼓励&am…

2、数据库模型图、er图

关系 user和administarators是多对一的关系 user和order是一对多的关系 shipped和order是多对一的关系 order和books是多对多的关系 leavewords和order是一对一的关系 stock和books是一对多的关系 Chens 数据库表示法——ER图 Crows Foot数据库表示法——数据库模型图 Navicat表…