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

news2024/11/24 11:37:22

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ONLYOFFICE 桌面编辑器 8.1 版发布:全面提升文档处理效率的新体验

文章目录 什么是ONLYOFFICE ?ONLYOFFICE 桌面编辑器 8.1 发布:新功能和改进功能强大的 PDF 编辑器幻灯片版式功能从右至左语言支持多媒体功能增强无缝切换工作模式其他改进和优化总结 什么是ONLYOFFICE ? https://www.onlyoffice.com/zh/off…

光伏发电项目是如何提高开发效率的?

随着全球对可再生能源需求的持续增长,光伏发电项目的高效开发成为关键。本文将深入探讨如何在实际操作中提高光伏发电项目的开发效率。 一、优化选址流程 1、数据收集与分析:利用卫星地图和遥感技术,收集目标区域的光照资源、地形地貌、阴影…

【图像分类】Yolov8 完整教程 |分类 |计算机视觉

目标:用YOLOV8进行图像分类。 图像分类器。 学习资源:https://www.youtube.com/watch?vZ-65nqxUdl4 努力的小巴掌 记录计算机视觉学习道路上的所思所得。 1、文件结构化 划分数据集:train,val,test 知道怎么划分数据集很重要。 文件夹…

OSI七层模型TCP/IP四层面试高频考点

OSI七层模型&TCP/IP四层&面试高频考点 1 OSI七层模型 1. 物理层:透明地传输比特流 在物理媒介上传输原始比特流,定义了连接主机的硬件设备和传输媒介的规范。它确保比特流能够在网络中准确地传输,例如通过以太网、光纤和无线电波等媒…

等保测评初级简答题试题

基本要求,在应用安全层面的访问控制要求中,三级系统较二级系统增加的措施有哪些? 答:三级比二级增加的要求项有: 应提供对重要信息资源设置敏感标记的功能; 应按照安全策略严格控制用户对有敏感标记重要…

MySQL高级-索引-使用规则-单列索引联合索引

文章目录 1、单列索引2、联合索引3、查看表索引4、创建 name 和 phone 索引5、查询 phone17799990010 and name韩信6、执行计划 phone17799990010 and name韩信7、创建联合唯一索引 idx_user_phone_name8、再次执行计划 phone17799990010 and name韩信9、使用了USE INDEX提示来…

为什么叫云计算?云计算的优势有哪些

说起云计算大家并不会感到陌生,那么为什么叫云计算?云计算技术的引入通常会使企业的信息技术应用更高效、更可靠、更安全。云计算支持用户在任意位置、使用各种终端获取应用服务。使用了数据多副本容错、计算节点同构可互换等措施来保障服务的高可靠性&a…

从RLHF到DPO再到TDPO,大模型对齐算法已经是「token-level」

在人工智能领域的发展过程中,对大语言模型(LLM)的控制与指导始终是核心挑战之一,旨在确保这些模型既强大又安全地服务于人类社会。早期的努力集中于通过人类反馈的强化学习方法(RLHF)来管理这些模型&#x…

mmdetection2.28修改backbone不使用预训练参数、从头训练

背景 最近需要测试一下在backbone部分如果不使用预训练参数的话,模型需要多少轮才能收敛所使用的backbone是mmcls.ConvNeXtmmdetection版本为2.28.2,mmcls版本为0.25.0 修改流程 最简单的方法,直接去mmcls的model zoo里找到对应backbone的…

新能源汽车CAN总线故障定位与干扰排除的几个方法

CAN总线是目前最受欢迎的现场总线之一,在新能源车中有广泛应用。新能源车的CAN总线故障和隐患将影响驾驶体验甚至行车安全,如何进行CAN总线故障定位及干扰排除呢? 目前,国内机动车保有量已经突破三亿大关。由于大量的燃油车带来严峻的环境问题,因此全面禁售燃油车的日程在…

ResNet-50算法

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 一、理论知识储备 1.CNN算法发展 AlexNet是2012年ImageNet竞赛中,由Alex Krizhevsky和Ilya Sutskever提出,在2012年ImageNet竞赛中&a…

防火墙双双机热备

设备直路部署,上下行连接交换机 如 图所示,DeviceA和DeviceB的业务接口都工作在三层,上下行分别连接二层交换机。上行交换机连接运营商的接入点,运营商为企业分配的IP地址为1.1.1.3和1.1.1.4。现在希望DeviceA和DeviceB以负载分担…

鸿蒙 雷达图 绘制 人生四运图

let radius = Math.min(this.context.width, this.context.height) / 2 - 20;let centerX = this.context.width / 2;let centerY = this.context.height / 2;// 绘制圆环this.context.strokeStyle = #E4E4E4;const numRings = 5;const ringInterval = 1;for (let i = 0; i <…

Zookeeper:基于Zookeeper的分布式锁

一、Zookeeper分布式锁原理 二、Zookeeper JavaAPI操作 1、Curator介绍 Curator是Apache Zookeeper的Java客户端。常见的Zookeeper Java API&#xff1a; 原生Java API。ZkClient。Curator。 Curator项目目标是简化Zookeeper客户端的使用。Curator最初是Netfix研发的&#xf…

C++学习笔记---串口通信

串口基础知识 DB9针的RS-232串口&#xff0c;分别是公头、母头&#xff0c;这两种串口可以连接在一起。DB9针的串口信号脚编号及信号脚的具体含义如下 串口通信可以使用3根线完成&#xff0c;对应信号脚分别是&#xff1a;2接收、3发送、5地线。对此&#xff0c;有个简单的记法…

你知道大数据信用分低需要如何改善吗?

在当今社会&#xff0c;大数据信用分已经成为个人信用评估的重要指标之一。然而&#xff0c;有时候我们会发现自己的大数据信用分较低&#xff0c;这可能会对我们的信用状况产生负面影响。那么&#xff0c;如何改善自己的大数据信用分呢?本文将从信用分低的原因进行分析&#…

python pyautogui.position实时输出坐标

import pyautogui import timewhile True:# 获取鼠标当前坐标x, y pyautogui.position()# 打印坐标print(f"当前坐标&#xff1a;({x}, {y})")# 暂停1秒time.sleep(1) 输出实时鼠标位置坐标

6.26.4.1 基于交叉视角变换的未配准医学图像多视角分析

1. 介绍 许多医学成像任务使用来自多个视图或模式的数据&#xff0c;但很难有效地将这些数据结合起来。虽然多模态图像通常可以在神经网络中作为多个输入通道进行配准和处理&#xff0c;但来自不同视图的图像可能难以正确配准(例如&#xff0c;[2])。因此&#xff0c;大多数多视…

【集成学习】基于python的stacking回归预测

1 回归模型 当涉及到线性回归、岭回归、套索回归、决策树回归、随机森林回归、梯度提升回归和支持向量机回归模型的原理时&#xff0c;我们可以按照以下方式清晰地解释它们&#xff1a; 1.1 线性回归 线性回归是利用数理统计中的回归分析来确定两种或两种以上变量间相互依赖的…

说一说ABAP CDS View的发展历史与特性

1. 背景 随着SAP Fiori应用程序的兴起&#xff0c;SAP领域的小伙伴接触和使用ABAP CDS View的机会也是越来越多。今天&#xff0c;让我们花些时间&#xff0c;一起在了解下这项技术的设计初衷和发展历史。 2. 设计初衷 说起ABAP CDS View&#xff0c;就不得不提及SAP HANA。…