为了方便调试代码,经常会向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 设置控制台、命令行输出彩色文字的更多相关文章

  1. python开发简单的命令行工具

    介绍 Python模块argparse,这是一个命令行选项,参数和子命令的解释器,使用该模块可以编写友好的命令行工具,在程序中定义好需要的参数,argparse将弄清楚如何解析 sys.argv中的参 ...

  2. Python同时向控制台和文件输出日志logging的方法 Python logging模块详解

    Python同时向控制台和文件输出日志logging的方法http://www.jb51.net/article/66756.htm 1 #-*- coding:utf-8 -*- 2 import ...

  3. 控制台命令行API

    js调试系列: 控制台命令行API   上次初步介绍了什么是控制台<js调试系列: 初识控制台>,以及简单的 console.log 输出信息.最后还有两个小问题,我们就当回顾,来看下怎么 ...

  4. Python通过调用windows命令行处理sam文件

    Python通过调用windows命令行处理sam文件 以samtools软件为例 一.下载或者索取得到windows版本的samtools软件,解压后如下: 进入文件内部,有如下几个文件: 二.将s ...

  5. 将Python模块转变为命令行工具

    问:如何输入命令行就能执行python代码呢? 答:要将python模块转变为命令行工具只用在 setup.py 文件中添加参数entry_points 例如: entry_points={ 'con ...

  6. python如何通过windows命令行运行一个python程序文件?

    python如何通过windows命令行运行一个python程序文件? cmd 进入到py文件对应目录下或者直接在上面的文件地址栏输入cmd,敲入回车 定位到对应的目录下 输入python xxx.p ...

  7. Python实现Windows CMD命令行彩色输出

    #! /usr/bin/env python #coding=utf-8   import ctypes,sys   STD_INPUT_HANDLE = -10 STD_OUTPUT_HANDLE ...

  8. 【转】Python实现修改Windows CMD命令行输出颜色(完全解析)

    用Python写命令行程序的时候,单一的输出颜色太单调.其实我们可以加些色彩,比如用红色表示警告,绿色表示结果正常等.网上也有几篇类似的帖子,但是没有把问题讲清楚,贴的代码也不是太清晰.这里,对Win ...

  9. windows下安装python、环境设置、多python版本的切换、pyserial与多版本python安装、windows命令行下切换目录

    1.windows下安装python 官网下载安装即可 2.安装后的环境设置 我的电脑--属性--高级--设置path的地方添加python安装目录,如C:\Python27;C:\Python33 ...

  10. Python 处理脚本的命令行参数(二):使用click

    安装click pip install click 使用步骤 使用@click.command() 装饰一个函数,使之成为命令行接口 使用@click.option() 等装饰函数,为其添加命令行选项 ...

随机推荐

  1. 谷歌语法Github及利用方式

    0x01简介 GoogleHack(谷歌语法)是指使用Google等搜索引擎对某些特定的网络主机漏洞(通常是服务器上的脚本漏洞)进行搜索,以达到快速找到漏洞主机或特定主机的漏洞的目的.比如使用搜索包含 ...

  2. uniapp主题切换功能的第二种实现方式(scss变量+require)

    在上一篇 "uniapp主题切换功能的第一种实现方式(scss变量+vuex)" 中介绍了第一种如何切换主题,但我们总结出一些不好的地方,例如扩展性不强,维护起来也困难等等,那么接 ...

  3. 逍遥自在学C语言 | 宏定义技巧让你的C代码快人一步

    前言 在C语言中,宏定义是一种预处理指令,用于在代码中定义和使用常量.函数或代码片段的替代. 宏定义使用#define关键字来定义,并在代码中进行替换.宏定义具有以下优点: 简化代码:宏定义可以将一些 ...

  4. 尚医通day09-【用户平台搭建详细步骤】(内附源码)

    页面预览 首页 医院详情 第01章-服务器端渲染和客户端渲染 1.搜索引擎优化 1.1.什么是搜索引擎优化 SEO 是网站为了获得更多的流量,对网站的结构及内容进行调整和优化,以便搜索引擎 (百度,g ...

  5. 春秋杯春季联赛&&ciscn2023华北赛区部分题解

    前言 复现几个比赛时没做出来的题 1.[CISCN 2023 华北赛区]ez_ruby 查文档可知 ruby内置的open函数,如果第一个字符是管道符|,后面就可以接命令.这可能是考察涉猎的知识范围广 ...

  6. AcWing 第87场周赛题解

    T1 移动棋子 算出数值为 \(1\) 的点离 \((3, 3)\) 的距离即可. #include <iostream> #include <cstring> #includ ...

  7. 【SpringCloud】Ribbon

    Ribbon 负载均衡原理 order-service 发起 user-service 请求,被ribbon进行拦截; ribbon会向注册中心拉取user-service 相对应的服务; 注册中心返 ...

  8. 一文了解io包中的discard类型

    1. 引言 io.discard是Go语言标准库提供一个结构体类型,其在丢弃不需要的数据场景下非常好用.本文我们将从io.discard 类型的基本定义出发,讲述其基本使用和实现原理,接着简单描述 i ...

  9. linux内核vmlinux的编译过程(七)

    一. vmlinux目标及其构建规则 定义在顶层Makefile中,如下: # The all: target is the default when no target is given on th ...

  10. sudo:pam_open_session Permission denied 与 Too many open files

    sudo:pam_open_session Permission denied 一,验证 sudo 权限失败: /etc/sudoers 文件未给相关用户配置权限. 打开 /etc/sudoers 文 ...