Python colorama 设置控制台、命令行输出彩色文字
为了方便调试代码,经常会向stdout中输出一些日志,但是大量日志,有时不好定位问题。
使用终端打印特定颜色字符串,可以突出显示关键性的信息,帮助用户更好地识别和理解输出内容。
https://pypi.org/project/colorama/
Colorama 是为了在命令行界面中提供简单、方便的文本着色功能而设计的,通过使用 ANSI 转义序列来实现这一目的。它广泛应用于命令行工具开发、日志记录、调试输出等场景中,以提高可读性和用户体验。
Colorama 的主要功能:输出一种跨平台的ANSI转义序列,Terminal收到这种特殊的序列后并不直接显示ASCII字符,而是显示指定的颜色。
在大多数常规终端(如 Windows 中的 cmd.exe,Linux/macOS 中的终端)中,控制台输出的文本颜色和样式是通过 ANSI 转义序列实现的。跨平台解决方案colorama库封装了这些 ANSI 转义序列的复杂性,提供了一个简单的接口来设置和应用文本颜色、背景色和样式。
colorama模块的作用是:
- 在Windows平台上添加ANSI转义字符的支持,因为Windows命令行默认不支持ANSI控制码
- 提供了 Fore/Back/Style 等对象封装ANSI代码,使用更简单
- 自动设置和关闭ANSI支持,不需要自己添加控制字符
- 所以colorama的主要功能是让ANSI转义字符在Windows平台也可以工作,从而实现跨平台的颜色打印。
- 它不是Python标准库,需要安装后导入使用。但几乎成为了彩色打印输出的标准方式
# 安装
pip install colorama
# 导入使用
# Fore:用于改变输出文本的颜色;
# Style:用于改变输出文本的亮度;
# Back:用于改变输出文本的背景(即突出显示文本)。
# BRIGHT:使得输出文本变亮
from colorama import Fore, Back, Style
print(Fore.RED + 'some red text' + Style.RESET_ALL)
print(Back.RED + Style.BRIGHT + "update xxx fail,please check it!xxx" + Style.RESET_ALL)
打印颜色组合
import colorama
from colorama import Fore, Back, Style
def main():
# 初始化 colorama 模块
colorama.init()
# 日志信息
log_message = "下发的数据: 12345"
# 颜色组合示例
color_combinations = [
(Fore.GREEN, Back.WHITE), # 绿色白底
(Fore.BLUE, Back.YELLOW), # 蓝色黄底
(Fore.MAGENTA, Back.YELLOW), # 紫色黄底
(Fore.CYAN, Back.LIGHTBLACK_EX), # 青色灰底,感觉这个效果不错
(Fore.YELLOW, Back.RED) # 黄色红底
]
# 使用不同的颜色组合打印日志信息
for foreground_color, background_color in color_combinations:
logged_message = f"{foreground_color}{background_color}{log_message}{Style.RESET_ALL}"
print(logged_message)
if __name__ == '__main__':
main()

Python colorama 设置控制台、命令行输出彩色文字的更多相关文章
- python开发简单的命令行工具
介绍 Python模块argparse,这是一个命令行选项,参数和子命令的解释器,使用该模块可以编写友好的命令行工具,在程序中定义好需要的参数,argparse将弄清楚如何解析 sys.argv中的参 ...
- Python同时向控制台和文件输出日志logging的方法 Python logging模块详解
Python同时向控制台和文件输出日志logging的方法http://www.jb51.net/article/66756.htm 1 #-*- coding:utf-8 -*- 2 import ...
- 控制台命令行API
js调试系列: 控制台命令行API 上次初步介绍了什么是控制台<js调试系列: 初识控制台>,以及简单的 console.log 输出信息.最后还有两个小问题,我们就当回顾,来看下怎么 ...
- Python通过调用windows命令行处理sam文件
Python通过调用windows命令行处理sam文件 以samtools软件为例 一.下载或者索取得到windows版本的samtools软件,解压后如下: 进入文件内部,有如下几个文件: 二.将s ...
- 将Python模块转变为命令行工具
问:如何输入命令行就能执行python代码呢? 答:要将python模块转变为命令行工具只用在 setup.py 文件中添加参数entry_points 例如: entry_points={ 'con ...
- python如何通过windows命令行运行一个python程序文件?
python如何通过windows命令行运行一个python程序文件? cmd 进入到py文件对应目录下或者直接在上面的文件地址栏输入cmd,敲入回车 定位到对应的目录下 输入python xxx.p ...
- Python实现Windows CMD命令行彩色输出
#! /usr/bin/env python #coding=utf-8 import ctypes,sys STD_INPUT_HANDLE = -10 STD_OUTPUT_HANDLE ...
- 【转】Python实现修改Windows CMD命令行输出颜色(完全解析)
用Python写命令行程序的时候,单一的输出颜色太单调.其实我们可以加些色彩,比如用红色表示警告,绿色表示结果正常等.网上也有几篇类似的帖子,但是没有把问题讲清楚,贴的代码也不是太清晰.这里,对Win ...
- windows下安装python、环境设置、多python版本的切换、pyserial与多版本python安装、windows命令行下切换目录
1.windows下安装python 官网下载安装即可 2.安装后的环境设置 我的电脑--属性--高级--设置path的地方添加python安装目录,如C:\Python27;C:\Python33 ...
- Python 处理脚本的命令行参数(二):使用click
安装click pip install click 使用步骤 使用@click.command() 装饰一个函数,使之成为命令行接口 使用@click.option() 等装饰函数,为其添加命令行选项 ...
随机推荐
- 谷歌语法Github及利用方式
0x01简介 GoogleHack(谷歌语法)是指使用Google等搜索引擎对某些特定的网络主机漏洞(通常是服务器上的脚本漏洞)进行搜索,以达到快速找到漏洞主机或特定主机的漏洞的目的.比如使用搜索包含 ...
- uniapp主题切换功能的第二种实现方式(scss变量+require)
在上一篇 "uniapp主题切换功能的第一种实现方式(scss变量+vuex)" 中介绍了第一种如何切换主题,但我们总结出一些不好的地方,例如扩展性不强,维护起来也困难等等,那么接 ...
- 逍遥自在学C语言 | 宏定义技巧让你的C代码快人一步
前言 在C语言中,宏定义是一种预处理指令,用于在代码中定义和使用常量.函数或代码片段的替代. 宏定义使用#define关键字来定义,并在代码中进行替换.宏定义具有以下优点: 简化代码:宏定义可以将一些 ...
- 尚医通day09-【用户平台搭建详细步骤】(内附源码)
页面预览 首页 医院详情 第01章-服务器端渲染和客户端渲染 1.搜索引擎优化 1.1.什么是搜索引擎优化 SEO 是网站为了获得更多的流量,对网站的结构及内容进行调整和优化,以便搜索引擎 (百度,g ...
- 春秋杯春季联赛&&ciscn2023华北赛区部分题解
前言 复现几个比赛时没做出来的题 1.[CISCN 2023 华北赛区]ez_ruby 查文档可知 ruby内置的open函数,如果第一个字符是管道符|,后面就可以接命令.这可能是考察涉猎的知识范围广 ...
- AcWing 第87场周赛题解
T1 移动棋子 算出数值为 \(1\) 的点离 \((3, 3)\) 的距离即可. #include <iostream> #include <cstring> #includ ...
- 【SpringCloud】Ribbon
Ribbon 负载均衡原理 order-service 发起 user-service 请求,被ribbon进行拦截; ribbon会向注册中心拉取user-service 相对应的服务; 注册中心返 ...
- 一文了解io包中的discard类型
1. 引言 io.discard是Go语言标准库提供一个结构体类型,其在丢弃不需要的数据场景下非常好用.本文我们将从io.discard 类型的基本定义出发,讲述其基本使用和实现原理,接着简单描述 i ...
- linux内核vmlinux的编译过程(七)
一. vmlinux目标及其构建规则 定义在顶层Makefile中,如下: # The all: target is the default when no target is given on th ...
- sudo:pam_open_session Permission denied 与 Too many open files
sudo:pam_open_session Permission denied 一,验证 sudo 权限失败: /etc/sudoers 文件未给相关用户配置权限. 打开 /etc/sudoers 文 ...