python常用库之colorama (python命令行界面打印怎么加颜色)

2023-11-01

python常用库之colorama (python命令行界面打印怎么加颜色)

背景

在Python开发项目过程中,为了方便调试代码,经常会向stdout中输出一些日志,但是大量日志,有时不好定位问题。

使用终端打印特定颜色字符串,可以突出显示关键性的信息,帮助用户更好地识别和理解输出内容。

colorama介绍

官方:https://pypi.org/project/colorama
官方:https://github.com/tartley/colorama

Colorama 是为了在命令行界面中提供简单、方便的文本着色功能而设计的,通过使用 ANSI 转义序列来实现这一目的。它广泛应用于命令行工具开发、日志记录、调试输出等场景中,以提高可读性和用户体验。

colorama的主要功能:输出一种跨平台的ANSI转义序列,Terminal收到这种特殊的序列后并不直接显示ASCII字符,而是显示指定的颜色。

在大多数常规终端(如 Windows 中的 cmd.exe,Linux/macOS 中的终端)中,控制台输出的文本颜色和样式是通过 ANSI 转义序列实现的。跨平台解决方案colorama库封装了这些 ANSI 转义序列的复杂性,提供了一个简单的接口来设置和应用文本颜色、背景色和样式。

colorama模块的作用是:

  1. 在Windows平台上添加ANSI转义字符的支持,因为Windows命令行默认不支持ANSI控制码
  2. 提供了 Fore/Back/Style 等对象封装ANSI代码,使用更简单
  3. 自动设置和关闭ANSI支持,不需要自己添加控制字符
    所以colorama的主要功能是让ANSI转义字符在Windows平台也可以工作,从而实现跨平台的颜色打印。
    它不是Python标准库,需要安装后导入使用。但几乎成为了彩色打印输出的标准方式。

colorama使用

# 安装
pip install colorama

# 导入使用
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)
  • Fore:用于改变输出文本的颜色;
  • Style:用于改变输出文本的亮度;
  • Back:用于改变输出文本的背景(即突出显示文本)。
  • BRIGHT:使得输出文本变亮

colorama打印红色闪烁

打印颜色组合

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()

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python常用库之colorama (python命令行界面打印怎么加颜色) 的相关文章

随机推荐

  • MySQL学习之DML语言

    MySQL学习之DML语言 DML SELECT完整语法 创建User 表 单表查询 保留关键字 查询空值 AND多条件查询 OR 多条件查询 DISTINCT 查询结果排序 分组查询 LIMIT 关键字 连接查询 DML 数据操纵语言DM
  • 【现代密码学原理】——期末复习(冲刺篇)

    前言 快考试了 做篇期末总结 都是重点与必考点 博主预测考点 计算题 RSA Diffie Hellman密钥交换 EIGamal 密钥交换 使用SHA 512算法 计算消息的Hash值 计算消息的HMAC 应用题 代替技术 1 2个 置换
  • Flutter升级后在Android studio上提示卡顿

    背景 32g台式机内存 amd 2700cpu 但是在Android studio上进行flutter 代码依旧感觉到卡顿 卸载重装了两次 依旧卡顿 无奈转vscode 奈何vscode用得还是效率不够高 经过某次搜索 尝试后 便记录之 举
  • 使用Python的win32com库实现对PowerPoint的操作

    使用Python的win32com库实现对PowerPoint的操作 1 引言 PowerPoint是微软公司开发的一款流行的演示文稿软件 广泛应用于演讲 培训和商务展示等场景 win32com库是Python的一个扩展模块 可以用于操作W
  • 置信区间与预测区间

    作者记录方便查询 置信区间 学习过程中 在计算置信度与置信区间的时候 所估计的变量常常是总体的某个参数 均值 方差等等 这时的已知条件一般为样本 通常还有总体分布 未知的 也是需要估计的是总体参数 因为仅仅估计某一个点的准确度不够 所以使用
  • 染色日志是怎么实现的?

    底层的rpc框架实现的 其实就是给每一次请求的源头处 加上一个seqence id id内容可以是qq号 时间戳 随机数 每次记日志的时候 都打把seqence id打出来 rpc调用的时候 由于跨机器了 需要在rpc消息中把这个seqen
  • 【期末复习】多媒体技术

    参考博客 多媒体技术期末复习题 多媒体信息技术 复习思考题 考试重点 1 JPEG压缩编码算法实现步骤 2 APCM DPCM ADPCM的区别 3 哈夫曼编码计算 画哈夫曼树 计算码长 4 颜色空间转换 RGB与CMY 还是YUV 之间
  • VBA 32位代码适配64位

    很久前用 Access VBA 写个程序 在64位的 Office 下一直报错 遂一直用 32位的 Office 最近尝试安装了 Office 2021 看到那图标那界面顿时爱了 一时没有找到 32位 的 Office 2021 遂决定解决
  • c语言写我爱你中国编程,c程序设计案例汇编课件.ppt

    C程序设计案例汇编 2011 4 第二章初识C语言程序设计 学习目标通过本章的学习 学会 1 在屏幕上输出显示需要的信息 2 给予简单的数据 进行处理 输出结果 3 输入输出函数的简单使用 4 简单的分支操作 5 简单的循环操作 C语言程序
  • SQLserver的Always On 可用性组

    Note Always On笔记 1 always on是基于 高可用性组的 1 1高可用性组 是一组SQLserver实例 由一个或多个主数据库 和 多个辅助数据库构成 1 2高可用性组之间 数据是同步的 有两种方式同步数据 同步提交模式
  • 哈希字符串入门 P3370洛谷

    题目链接 描述 如题 给定N个字符串 第i个字符串长度为Mi 字符串内包含数字 大小写字母 大小写敏感 请求出N个字符串中共有多少个不同的字符串 输入格式 第一行包含一个整数N 为字符串的个数 接下来N行每行包含一个字符串 为所提供的字符串
  • Spring Security:保护Spring应用程序的最佳实践

    目录 1 Spring Security是什么 它的作用是什么 2 Spring Security如何实现身份验证和授权 3 什么是Spring Security过滤器链 4 Spring Security如何防止跨站点请求伪造 CSRF
  • 单片机使用有线以太网联网的解决方案

    1 有MII RMII接口 且内置MAC 的单片机 如 STM32F407 STM32F107 ESP32 方案 外置PHY 且内部程序要运行TCP IP协议栈 PHY芯片推荐列表 LAN8720 LAN8742 DP83848 2 无MI
  • 【编译原理】机测笔记

    A 小C语言 词法分析程序 lt 参考代码 gt include iostream using namespace std 定义6个关键词 string S 6 main for if else int while Todo 设置displ
  • TypeScript:void, null, undefined的区别

    void Typescript中的void 与C语言中使用void定义一个函数时的意义一样 表示该函数没有返回值 function noReturn void console log This function don t have ret
  • win7 Embedded EWF与HORM特性(实战验证)

    前言 这两天在网上搜了很久 发现描述EWF特性的文章 大部分都是关于xp embedded的 真正运用在win7 embedded的少之又少 特别是中文描述的就更少了 于是 将自己这两天整理的结果供大家参考一下 先决条件 1 目标机 能够安
  • iOS动画—UIView动画以及CoreAnimation动画

    温故知新 一 UIView动画 1 1稍微简单点的动画 1 2稍微复杂的动画 二 CoreAnimation动画 CA动画的特点 只能添加到UIView的CALayer上面 必须需要引入
  • 树的创建、遍历及可视化

    许久不复习数据结构了 对于知识点都有些遗忘了 想着来写一些树的遍历 查找 发现连创建一棵树都快忘记了 不过幸好 还是可以看懂别人的代码 还算是有一些基础的 最终也写出来了 因为觉得这样太过于麻烦了 所以 我就在思考一个问题 如何简化这个过程
  • 自动化测试与自动化测试生命周期

    1 1 自动化测试的定义及概述1 1 1 软件测试的定义与分类 软件测试 2 就是在软件投入运行前 对软件需求分析 设计规格说明和编码的最终复查 是软件质量保证的关键步骤 定义1 软件测试是为了发现错误而在规定的条件下执行程序的过程 定义2
  • python常用库之colorama (python命令行界面打印怎么加颜色)

    文章目录 python常用库之colorama python命令行界面打印怎么加颜色 背景 colorama介绍 colorama使用 colorama打印红色闪烁 打印颜色组合 python常用库之colorama python命令行界面