Python语言修改控制台输出文字的颜色和背景颜色

Python语言修改控制台输出文字的颜色和背景颜色

  • 格式
  • 显示模式
  • 字体颜色
  • 背景颜色
  • 文字加效果显示类

格式

\033[显示模式;字体颜色;背景颜色m

显示模式

显示模式格式
将文本颜色和背景颜色重置为默认值,取消所有其他文本属性\033[0m
高亮(加粗)\033[1m
低亮\033[2m
斜体\033[3m
下划线\033[4m
闪烁\033[5m
快速闪烁\033[6m
反显\033[7m
隐藏\033[8m
删除线\033[9m
for i in range(0, 10):print(f'\033[{i}m' + f'字体{i}' + '\033[0m')

在这里插入图片描述

字体颜色

字体颜色格式
黑色\033[30m
红色\033[31m
绿色\033[32m
黄色\033[33m
蓝色\033[34m
紫色\033[35m
靓色\033[36m
白色\033[37m
自定义颜色\033[38m
字体颜色重置为默认值\033[39m
for i in range(0, 10):print(f'\033[3{i}m' + f'字体颜色{i}' + '\033[0m')

在这里插入图片描述

这里需要注意自定义颜色,它的格式为:

\033[38;5;颜色值m

颜色值可以取0-255之间的值

for i in range(0, 256):if i % 10 == 0:print()print(f'\033[38;5;{i}m' + f'字体颜色' + '\033[0m', end = ' ')

在这里插入图片描述

背景颜色

背景颜色格式
黑色\033[40m
红色\033[41m
绿色\033[42m
黄色\033[43m
蓝色\033[44m
紫色\033[45m
靓色\033[46m
白色\033[47m
自定义颜色\033[48m
背景颜色重置为默认值\033[49m
for i in range(0, 10):print(f'\033[4{i}m' + f'背景颜色{i}' + '\033[0m')

在这里插入图片描述
还是需要注意自定义颜色,它的格式为:

\033[48;5;颜色值m

颜色值可以取0-255之间的值

for i in range(0, 256):if i % 10 == 0:print()print(f'\033[48;5;{i}m' + f'背景颜色' + '\033[0m', end = ' ')

在这里插入图片描述

文字加效果显示类

写了一个给文字加入效果的类,可以指定颜色、显示模式、背景颜色。

import argparse
import subprocessclass DisplayMode:def __init__(self):self.display_mode = {'reset': '\033[0m','highlight': '\033[1m','delight': '\033[2m','italic': '\033[3m','underline': '\033[4m','glitter': '\033[5m','glitter_quick': '\033[6m','invert': '\033[7m','hide': '\033[8m','delete': '\033[9m',}def __call__(self, mode):return self.display_mode[mode]class FontColor:def __init__(self):self.font_colors = {'black': '\033[30m','red': '\033[31m','green': '\033[32m','yellow': '\033[33m','blue': '\033[34m','purple': '\033[35m','cyan': '\033[36m','white': '\033[37m','custom': '\033[38;5;{color}m'}def __call__(self, mode, color=None):if mode == 'custom' and color is None:print(self.font_colors['red'] + '自定义背景字体没有设置' + DisplayMode()('reset'))elif mode == 'custom' and color is not None:return self.font_colors[mode].replace('{color}', str(color))else:return self.font_colors[mode]class BackgroundColors:def __init__(self):self.background_colors = {'black': '\033[40m','red': '\033[41m','green': '\033[42m','yellow': '\033[43m','blue': '\033[44m','purple': '\033[45m','cyan': '\033[46m','white': '\033[47m','custom': '\033[48;5;{color}m'}def __call__(self, mode, color=None):if mode == 'custom' and color is None:print(self.background_colors['red'] + '自定义背景颜色没有设置' + DisplayMode()('reset'))elif mode == 'custom' and color is not None:return self.background_colors[mode].replace('{color}', str(color))else:return self.background_colors[mode]def print_text(text, display_mode=None, font_color=None, bg_color=None, end=None, **kwargs):"""彩色输出控制台内容:param text: 输出的内容:param display_mode: 显示模式reset: 重置样式,highlight: 高亮,delight: 低亮,italic: 斜体,underline: 下划线,glitter: 闪烁,glitter_quick: 快速闪烁,invert: 反显,hide: 隐藏(不显示),delete: 删除线:param font_color: 字体颜色black: 黑色,red: 红色,green: 绿色,yellow: 黄色,blue: 蓝色,purple: 紫色,cyan: 靓色,white: 白色,custom: 自定义颜色,传入参数fc=颜色,来指定颜色,值在0-255:param bg_color:black: 黑色,red: 红色,green: 绿色,yellow: 黄色,blue: 蓝色,purple: 紫色,cyan: 靓色,white: 白色,custom: 自定义颜色,传入参数bg=颜色,来指定颜色,值在0-255:param kwargs:fc指定字体自定义颜色,bg指定背景颜色自定义颜色,值在0-255Exampleprint_text('Hello World', 'italic', fc=44, bg=23)"""if display_mode is None:display_mode = ''else:display_mode = DisplayMode()(display_mode)if font_color is None or font_color == 'custom':if kwargs.__contains__('fc'):fc = kwargs['fc']font_color = FontColor()('custom', fc)else:font_color = ''else:font_color = FontColor()(font_color)if bg_color is None or bg_color == 'custom':if kwargs.__contains__('bg'):bg = kwargs['bg']bg_color = BackgroundColors()('custom', bg)else:bg_color = ''else:bg_color = BackgroundColors()(bg_color)text = str(text)if end is None:print(display_mode + font_color + bg_color + text + DisplayMode()('reset'))else:print(display_mode + font_color + bg_color + text + DisplayMode()('reset'), end=end)def pct(text, **kwargs):"""彩色输出控制台内容:param text: 输出的内容:param 显示模式%reset: 重置样式,highlight: 高亮,delight: 低亮,italic: 斜体,underline: 下划线,glitter: 闪烁,glitter_quick: 快速闪烁,invert: 反显,hide: 隐藏(不显示),delete: 删除线:param: 字体颜色$black: 黑色, 1red: 红色, 2green: 绿色, 3yellow: 黄色, 4blue: 蓝色, 5purple: 紫色, 6cyan: 靓色, 7white: 白色, 8custom: 自定义颜色,传入参数fc=颜色,来指定颜色,值在0-255, 9:param: 背景颜色&black: 黑色, 1red: 红色, 2green: 绿色, 3yellow: 黄色, 4blue: 蓝色, 5purple: 紫色, 6cyan: 靓色, 7white: 白色, 8custom: 自定义颜色,bg=颜色,来指定颜色,值在0-255, 9:param kwargs:fc指定字体自定义颜色,bg指定背景颜色自定义颜色,值在0-255Exampletext = '''%hl+$4+Warning:^- %i+&9+this method is discarded.^-'''"""display_mode = DisplayMode()font_color = FontColor()bg_color = BackgroundColors()text = text.replace('^-', display_mode('reset'))text = text.replace('%hl+', display_mode('highlight'))text = text.replace('%dl+', display_mode('delight'))text = text.replace('%i+', display_mode('italic'))text = text.replace('%u+', display_mode('underline'))text = text.replace('%g+', display_mode('glitter'))text = text.replace('%gq+', display_mode('glitter_quick'))text = text.replace('%in+', display_mode('invert'))text = text.replace('%h+', display_mode('hide'))text = text.replace('%d+', display_mode('delete'))colors = [{"name": "black", "chinese": "黑色", "id": 1, "description": "黑色, 1"},{"name": "red", "chinese": "红色", "id": 2, "description": "红色, 2"},{"name": "green", "chinese": "绿色", "id": 3, "description": "绿色, 3"},{"name": "yellow", "chinese": "黄色", "id": 4, "description": "黄色, 4"},{"name": "blue", "chinese": "蓝色", "id": 5, "description": "蓝色, 5"},{"name": "purple", "chinese": "紫色", "id": 6, "description": "紫色, 6"},{"name": "cyan", "chinese": "靓色", "id": 7, "description": "靓色, 7"},{"name": "white", "chinese": "白色", "id": 8, "description": "白色, 8"},{"name": "custom", "chinese": "自定义颜色", "id": 9,"description": "自定义颜色,传入参数fc=颜色,来指定颜色,值在0-255"}]bg = 256if kwargs.__contains__('bg'):bg = kwargs['bg']fc = 256if kwargs.__contains__('fc'):fc = kwargs['fc']for i in range(9):text = text.replace(f'${i + 1}+', font_color(colors[i]['name'], fc))for i in range(9):text = text.replace(f'&{i + 1}+', bg_color(colors[i]['name'], bg))print(text)if __name__ == '__main__':pct('%hl+$4+Warning:^- %i+&9+this method is discarded.^-')print_text('Hello World', 'italic', fc=44, bg=23)

运行结果

在这里插入图片描述

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

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

相关文章

Study--Oracle-04-SQL练习

一、SQL语句思维导图 二、SQL练习 -- 以employee_id 为排序,列出前5个人 -- FETCH select employee_id,first_name from employees order by employee_id FETCH FIRST 5 rows only; -- 以employee_id 为排序,从第6个人开始 到第10个人 -- offset …

【Java】已解决java.sql.SQLException异常

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决java.sql.SQLException异常 在Java中,java.sql.SQLException是一个通用的异常类,用于表示在数据库操作中发生的错误。无论是类型错误、数据类型不匹配…

ArcGIS图斑分区(组)排序—从上到下从左到右

​​ 点击下方全系列课程学习 点击学习—>ArcGIS全系列实战视频教程——9个单一课程组合系列直播回放 ArcGIS图斑分区(组)从上到下从左到右排序 是之前的内容的升级 GIS技巧100例——12ArcGIS图斑空间排序 关于今天的内容 我们在19年已经和大家分…

【Kubernetes项目部署】k8s集群+高可用、负载均衡+防火墙

项目架构图 (1)部署 kubernetes 集群 详见:http://t.csdnimg.cn/RLveS (2) 在 Kubernetes 环境中,通过yaml文件的方式,创建2个Nginx Pod分别放置在两个不同的节点上; Pod使用hostP…

Docker环境离线安装

Docker环境离线安装 下载下列.deb包 sudo *.deb

windows系统中开发的GO程序生成docker镜像并部署到阿里云服务(linux系统)的操作说明

本文简述将go程序生成docker镜像的操作方法,以及如何部署到阿里云服务。其中go程序在windows系统中开发,阿里云服务的操作系统为linux(centos7.9),以下为流程示意图: 一、window系统中开发go程序 程序实现…

前端技术栈三(vue+Axios)

一、Vue 1 基本介绍 1.1 Vue 是什么? Vue (读音 /vjuː/,类似于 view) 是一个前端框架, 易于构建用户界面 Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或项目整合 支持和其它类库结合使用 开发复杂的单页应用非常方便 Vue 是…

RAM + 串口的简单应用

REVIEW 之前已经学习过: RAM: RAM IP核配置_ip核 ram配置-CSDN博客 串口接收:Vivado 串口接收优化-CSDN博客 串口发送:Vivado 串口通信(UART)------串口发送_vivado串口收发实验-CSDN博客 按键:基于状态机的按键消抖实…

ADOP带你了解:数据中心的高速互联解决方案

随着大语言模型和AIGC的飞速发展,数据中心对于高速、高可靠性的网络连接需求日益增长。ADOP系列产品正是在这样的背景下应运而生,为现代数据中心提供了全面的连接解决方案。 ADOP系列产品概览 ADOP系列产品旨在为云、高性能计算、Web 2.0、企业、电信、…

SparkSQL的分布式执行引擎-Thrift服务:学习总结(第七天)

系列文章目录 SparkSQL的分布式执行引擎 1、启动Thrift服务 2、beeline连接Thrift服务 3、开发工具连接Thrift服务 4、控制台编写SQL代码 文章目录 系列文章目录前言一、SparkSQL的分布式执行引擎(了解)1、启动Thrift服务2、beeline连接Thrift服务3、开发工具连接Thrift服务4、…

(7)摄像机和云台

文章目录 前言 1 云台 2 带有MAVLink接口的摄像机 3 相机控制和地理标签 4 视频质量差的常见修复方法 5 详细主题 前言 Copter、Plane 和 Rover 最多支持 3 轴云台,包括自动瞄准感兴趣区域(ROI)的相机和自动触发相机快门等先进功能。按…

好书推荐:AI教母李飞飞自传《我看见的世界》,豆瓣9.1分!

大家好,我是木易,一个持续关注AI领域的互联网技术产品经理,国内Top2本科,美国Top10 CS研究生,MBA。我坚信AI是普通人变强的“外挂”,所以创建了“AI信息Gap”这个公众号,专注于分享AI全维度知识…

子组件和父组件之间传值#Vue3#defineProps

子组件和父组件之间传值#Vue3#defineProps 效果&#xff1a; 子组件&#xff1a; <!-- 6s执行项详情图片的子组件 --> <template><div><imgv-if"itemsLocal.url":src"itemsLocal.url"style"width: 50px; height: 50px; marg…

【Ardiuno】实验ESP32单片机搭建简易Web服务器功能(图文)

今天&#xff0c;小飞鱼继续来测试使用ESP32来实现简易的wifi无线web服务器功能。使用Ardiuno平台编辑器输入以下示例代码&#xff1a; #include <WiFi.h> #include <WiFiClient.h> #include <WebServer.h> #include <ESPmDNS.h>const char* ssid &q…

java 不可变集合的创建和Stream流的使用

文章目录 一、创建不可变的集合1.1为什么创建不可变的集合1.2 创建List、Set和Map的不可变集合1.2.1 创建List的不可变集合1.2.2 创建Set 的不可变集合1.2.3 创建Map的不可变集合 二、使用集合 的Stream 流2.1 Stream的使用步骤2.2 Stream的方法 三、如何获取Stream 流对象四、…

深度学习增强的非线性光纤单像素成像系统

1、光子器件的逆向设计&#xff1a;通过机器学习&#xff0c;特别是深度学习&#xff0c;可以高效地进行光子器件的逆向设计&#xff0c;这在传统的多参数优化问题中尤为重要。 2、超构表面和超材料设计&#xff1a;机器学习被用于设计具有特定光学特性的超构表面和超材料&…

初阶 《数组》 1. 一维数组的创建和初始化

1. 一维数组的创建和初始化 1.1 数组的创建 数组是一组相同类型元素的集合 数组的创建方式&#xff1a; type_t arr_name [const_n]; //type_t 是指数组的元素类型 //const_n 是一个常量表达式&#xff0c;用来指定数组的大小数组创建的实例&#xff1a; //代码1 int ar…

Wills Room Environment Dormitory Room Environment

有126个独特的网格。包括所有展示的资产和优质资产。具有良好的细节水平,并针对Gameready项目进行了优化。 艺术家Jonjo Hemmens创造的环境 如果想填充你的游戏环境或任何类型的虚拟制作级别,这里有一个包,你可以获得并使用它来得到高质量的视觉效果和优化的资产。 下载:​…

【病毒分析】Steloj勒索病毒分析

1.背景 1.1 来源 近期&#xff0c;Solar团队收到某汽车制造公司的援助请求&#xff0c;该公司的计算机服务器受到了Steloj勒索家族的侵害&#xff0c;所有的文件被加密并且添加了.steloj后缀&#xff0c;该勒索软件的初始入侵方式是MSSQL数据库弱口令进行入侵&#xff0c;后续…

Ubuntu22.04 下安装Curl库

1. apt 安装&#xff1a; sudo apt-get install curl 2. 官网压缩包&#xff1a; 下载地址&#xff1a;curl downloads wget https://curl.haxx.se/download/curl-7.78.0.tar.gz tar -xzvf curl-7.78.0.tar.gz cd curl-7.78.0 ./configure --with-openssl make sudo make i…