圆月山庄资源网 Design By www.vgjia.com
有时候需要在终端显示彩色的字符,即根据需要显示不同颜色的字符串,比如我们要在终端打印一行错误提示信息,要把它弄成红色的。其实这个在Python中很好实现,使用转义序列来实现不同颜色的显示,转义序列以ESC开头,它的ASCII码八进制为 \033。显示格式为:\033[显示方式;前景色;背景色m
用这种原生的转义序列输出,在linux下完全支持,但是在windows下确存在兼容问题,比如在win10下可以正常显示颜色,在win7下确不支持。因此可以使用python标准库提供的colorama模块
输出彩色字体,这个模块是跨平台的,内部实现也是采用转义序列来显示颜色的,只不过对windows平台做了特殊处理,因此完全兼容linux和windows各个版本。
以下封装了一个Colored类,提供了两个版本,第一个版本采用原生的转义字符序列输出各种颜。
第二个版本用python标准库的colorama模块兼容windows和linux。当要在终端打印彩色字体时直接调用对应的方法即可,很方便。
一.Colored版本
1:采用原生的转义字符序列---对windows有的版本不支持(比如win7),linux完美支持
#coding:gbk # ------------------------------------------------ # python终端显示彩色字符类,可以调用不同的方法 # 选择不同的颜色.使用方法看示例代码就很容易明白. # ------------------------------------------------ # # 显示格式: \033[显示方式;前景色;背景色m # ------------------------------------------------ # 显示方式 说明 # 0 终端默认设置 # 1 高亮显示 # 4 使用下划线 # 5 闪烁 # 7 反白显示 # 8 不可见 # 22 非粗体 # 24 非下划线 # 25 非闪烁 # # 前景色 背景色 颜色 # 30 40 黑色 # 31 41 红色 # 32 42 绿色 # 33 43 黃色 # 34 44 蓝色 # 35 45 紫红色 # 36 46 青蓝色 # 37 47 白色 # ------------------------------------------------ class Colored(object): # 显示格式: \033[显示方式;前景色;背景色m # 只写一个字段表示前景色,背景色默认 RED = '\033[31m' # 红色 GREEN = '\033[32m' # 绿色 YELLOW = '\033[33m' # 黄色 BLUE = '\033[34m' # 蓝色 FUCHSIA = '\033[35m' # 紫红色 CYAN = '\033[36m' # 青蓝色 WHITE = '\033[37m' # 白色 #: no color RESET = '\033[0m' # 终端默认颜色 def color_str(self, color, s): return '{}{}{}'.format( getattr(self, color), s, self.RESET ) def red(self, s): return self.color_str('RED', s) def green(self, s): return self.color_str('GREEN', s) def yellow(self, s): return self.color_str('YELLOW', s) def blue(self, s): return self.color_str('BLUE', s) def fuchsia(self, s): return self.color_str('FUCHSIA', s) def cyan(self, s): return self.color_str('CYAN', s) def white(self, s): return self.color_str('WHITE', s) # ----------使用示例如下:------------- color = Colored() print color.red('I am red!') print color.green('I am gree!') print color.yellow('I am yellow!') print color.blue('I am blue!') print color.fuchsia('I am fuchsia!') print color.cyan('I am cyan!') print color.white('I am white')
颜色对比图(根据需要自己设置对应的值):
运行效果:
二.Colored版本
2:采用python标准库的colorama模块--兼容linux和windows各个版本:
# -----------------colorama模块的一些常量--------------------------- # Fore: BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE, RESET. # Back: BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE, RESET. # Style: DIM, NORMAL, BRIGHT, RESET_ALL # from colorama import init, Fore, Back, Style init(autoreset=True) class Colored(object): # 前景色:红色 背景色:默认 def red(self, s): return Fore.RED + s + Fore.RESET # 前景色:绿色 背景色:默认 def green(self, s): return Fore.GREEN + s + Fore.RESET # 前景色:黄色 背景色:默认 def yellow(self, s): return Fore.YELLOW + s + Fore.RESET # 前景色:蓝色 背景色:默认 def blue(self, s): return Fore.BLUE + s + Fore.RESET # 前景色:洋红色 背景色:默认 def magenta(self, s): return Fore.MAGENTA + s + Fore.RESET # 前景色:青色 背景色:默认 def cyan(self, s): return Fore.CYAN + s + Fore.RESET # 前景色:白色 背景色:默认 def white(self, s): return Fore.WHITE + s + Fore.RESET # 前景色:黑色 背景色:默认 def black(self, s): return Fore.BLACK # 前景色:白色 背景色:绿色 def white_green(self, s): return Fore.WHITE + Back.GREEN + s + Fore.RESET + Back.RESET color = Colored() print color.red('I am red!') print color.green('I am gree!') print color.yellow('I am yellow!') print color.blue('I am blue!') print color.magenta('I am magenta!') print color.cyan('I am cyan!') print color.white('I am white!') print color.white_green('I am white green!')
运行效果:
更多关于Python终端输出彩色字符方法请查看下面的相关链接
圆月山庄资源网 Design By www.vgjia.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
圆月山庄资源网 Design By www.vgjia.com
暂无评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
2024年11月02日
2024年11月02日
- 张学友1997《不老的传说》宝丽金首版 [WAV+CUE][971M]
- 张韶涵2024 《不负韶华》开盘母带[低速原抓WAV+CUE][1.1G]
- lol全球总决赛lcs三号种子是谁 S14全球总决赛lcs三号种子队伍介绍
- lol全球总决赛lck三号种子是谁 S14全球总决赛lck三号种子队伍
- 群星.2005-三里屯音乐之男孩女孩的情人节【太合麦田】【WAV+CUE】
- 崔健.2005-给你一点颜色【东西音乐】【WAV+CUE】
- 南台湾小姑娘.1998-心爱,等一下【大旗】【WAV+CUE】
- 【新世纪】群星-美丽人生(CestLaVie)(6CD)[WAV+CUE]
- ProteanQuartet-Tempusomniavincit(2024)[24-WAV]
- SirEdwardElgarconductsElgar[FLAC+CUE]
- 田震《20世纪中华歌坛名人百集珍藏版》[WAV+CUE][1G]
- BEYOND《大地》24K金蝶限量编号[低速原抓WAV+CUE][986M]
- 陈奕迅《准备中 SACD》[日本限量版] [WAV+CUE][1.2G]
- TWINS.2004-SUCHABETTERDAY精美礼盒特别版2CD【英皇娱乐】【WAV+CUE】
- 音乐磁场.1991-1998-音乐磁场系列22CD【瑞星】【WAV+CUE】