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,一经查实,立即删除!

相关文章

揭秘银行小企业贷款业务:功能测试的全面指南

银行小企业贷款业务是指银行为支持小型企业的发展,向其提供的按照规定利率和期限的一种借款方式。这种贷款主要用于满足小企业进行固定资产购建、技术改造等大额长期投资的需求,同时也帮助解决小企业在发展过程中遇到的“融资难”、“融资贵”等问题。 …

速盾:什么是DDoS攻击,并如何应对?

在当今的网络世界中,DDoS(Distributed Denial of Service,分布式拒绝服务)攻击是一种极具威胁性的网络安全问题。作为一名专业程序员,深入了解 DDoS 攻击的本质和应对方法至关重要。 DDoS 攻击是指攻击者利用大量傀儡计…

SparkOnHive_数据多列转行操作应用

前言 行专列,列转行是数开不可避免的一步,尤其是在最初接触Hive的时候,看到什么炸裂函数,各种udf,有点发憷,无从下手,时常产生这t怎么搞,我不会啊? 好吧&#xff…

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年已经和大家分…

Iptables(1)基本概念

简介 iptables 是一个用于 Linux 操作系统的包过滤防火墙工具,可帮助管理网络流量和实施安全策略。它允许用户配置规则集以控制数据包如何在计算机上移动和处理。通过定义规则来允许或拒绝特定类型的流量,iptables 可以提供有效的网络安全保护。 主要功能包括: 数据包过滤…

mkfs.ext4 -- 生成ext4文件系统

mkfs.ext4 介绍 mkfs.ext4 是一个在 Linux 系统上用于创建 ext4 文件系统的工具。ext4 文件系统是扩展的第三代文件系统 (Fourth Extended Filesystem),是 ext3 的改进版,提供了更好的性能和功能。下面是对 mkfs.ext4 工具的详细讲解,包括其…

计算机视觉实验二:基于支持向量机和随机森林的分类(Part one: 编程实现基于支持向量机的人脸识别分类 )

目录 一、实验内容 二、实验目的 三、实验步骤 四、实验结果截图 五、实验完整代码 六、报错及解决方案 PS:实验的运行速度受电脑性能影响,如遇运行卡顿请耐心等待。 一、实验内容 编程实现基于支持向量机的人脸识别分类,基本功能包括:Labeled Faces in th…

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

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

Docker环境离线安装

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

【前端面经】滴滴一面

1.闭包是什么? 闭包的用途? JS 闭包 2024-3-12 闭包是指在一个函数内部定义的函数,该内部函数可以访问其外部函数的变量和参数。即使外部函数已经执行完毕并返回了,内部函数依然能够访问这些变量和参数。 //举例 function outerFunction(outerVariab…

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、…

深入理解 PHP 魔术常量

PHP 魔术常量是 PHP 语言中预先定义的常量,它们具有特殊的含义和用途。这些常量的值在程序运行时会根据上下文自动确定,为开发人员提供了方便和灵活性。本文将从多个方面深入探讨 PHP 魔术常量,包括它们的定义、特点、用途以及使用注意事项。…

(7)摄像机和云台

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

c#string常用方法总结

前言 我们在开发c#程序的过程中经常需要使用string这个类,string类也有很多方法,本文将会对我们常用的方法进行介绍,关于string类,一方面有静态方法一方面也有实例方法,下面分别介绍: 1、静态方法 1.1 C…