python调试过程中多颜色输出方式

2023-02-24 11:02:59 输出 调试 过程中

目的

python开发的过程中,经常会遇到需要打印各种信息。海量的信息堆砌在终端中,就会导致信息都混在一起,降低了重要信息的可读性。

这时候,如果能给重要的信息加上字体颜色,那么就会更加方便用户阅读了。

当然了,控制台的展示效果有限,并不能像前段一样炫酷,只能做一些简单的设置。

不过站在可读性的角度来看,已经好很多了。

主要语法

主要是通过一个固定格式的字符串进行控制

# 代码解释
# 颜色控制开始
print('\033[显示方式编号;前景色编号;背景色编号m')
# 颜色控制结束(切换回终端默认的格式)如果没有这个之后的内容都会按照上面的颜色控制开始设置的颜色进行输出
print('\033[0m')


#======linux======
# 连在一起,可以实现仅对本次想要输出的内容进行颜色控制
# 只在单个字符串内可以有效使用所以只能使用'控制字符串'+'***'的方式或者'控制字符串''***'或者'控制字符串***'的方式
# '控制字符串','***'这种方式是无效的
print('\033[显示方式编号;前景色编号;背景色编号m'+本次想要输出的内容+'\033[0m')
print('\033[显示方式编号;前景色编号;背景色编号m'本次想要输出的内容'\033[0m')


#======windows======
# 只在单个字符串内可以有效使用所以只能使用'控制字符串'+'***'的方式或者'控制字符串''***'或者'控制字符串***'的方式
# '控制字符串','***'这种方式是无效的
import colorama
from colorama import init,Fore,Back,Style
init(autoreset=True)
print('\033[显示方式编号;前景色编号;背景色编号;m本次想要输出的内容')
print('\033[显示方式编号;前景色编号;背景色编号;m''本次想要输出的内容')
# windows下不需要结束回到默认输出模式  下一行自动会回复
前景色颜色设置前景色编号
黑色30
红色31
绿色32
黃色33
蓝色34
紫红色35
青蓝色36
白色37
背景色颜色设置背景色编号
黑色40
红色41
绿色42
黃色43
蓝色44
紫红色45
青蓝色46
白色47
显示方式显示方式编号
终端默认设置0
加粗显示1
暗色显示2
倾斜3
使用下划线4
闪烁(好像看不出来他闪烁)5
反色显示(交换前后景)7
不可见8

代码演示 linux系统

颜色的控制

# 小于30 大于37 都会显示默认字体
print("\033[30m这是黑色字体\033[0m")#不会显示
print("\033[31m这是红色字体\033[0m")
print("\033[32m这是绿色字体\033[0m")
print("\033[33m这是黄色字体\033[0m")
print("\033[34m这是蓝色字体\033[0m")
print("\033[35m这是紫色字体\033[0m")
print("\033[36m这是青色字体\033[0m")
print("\033[37m这是白色字体\033[0m")
print("\033[38m这是默认字体\033[0m")  

image-20210601150132327

多行的控制

print("\033[31mtest")
print("test")
print("test")
print("test")
print("test")
print("test")
print("test")
print("test")
print("test\033[0m")  

image-20210601150239673

背景的控制

print("\033[1;31;40m这是黑色背景\033[0m")
print("\033[1;31;41m这是红色背景\033[0m")
print("\033[1;31;42m这是绿色背景\033[0m")
print("\033[1;31;43m这是黄色背景\033[0m")
print("\033[1;31;44m这是蓝色背景\033[0m")
print("\033[1;31;45m这是紫色背景\033[0m")
print("\033[1;31;46m这是青色背景\033[0m")
print("\033[1;31;47m这是白色背景\033[0m")
print("\033[1;31;48m这是默认背景\033[0m")  

image-20210601150520778

显示模式的控制

无背景的情况下进行显示模式的控制

print("\033[0m这是默认显示方式\033[0m")
print("\033[1m这是加粗显示方式\033[0m")
print("\033[2m这是暗色显示方式\033[0m")
print("\033[3m这是倾斜显示方式\033[0m")
print("\033[4m这是下划线显示方式\033[0m")
print("\033[5m这是闪烁显示方式\033[0m")
print("\033[7m这是反色显示方式\033[0m")
print("\033[8m这是不可见显示方式\033[0m")  

image-20210601151413458

有背景的情况下进行显示模式的控制

print("\033[0;31;47m这是默认显示方式\033[0m")
print("\033[1;31;47m这是加粗显示方式\033[0m")
print("\033[2;31;47m这是暗色显示方式\033[0m")
print("\033[3;31;47m这是倾斜显示方式\033[0m")
print("\033[4;31;47m这是下划线显示方式\033[0m")
print("\033[5;31;47m这是闪烁显示方式\033[0m")
print("\033[7;31;47m这是反色显示方式\033[0m")
print("\033[8;31;47m这是不可见显示方式\033[0m")  

代码演示 windows系统

windows的控制台略有不同,需要更改一点点细节

  • 首先好像它只控制一行(见TEST1,TEST2),所以可以不用结尾
  • 需要加一个头文件的配置
  • 不是每种颜色都能显示出来,大家可以试试(我这里前景色都用红色,背景色都用白色来测试
  • 貌似颜色调控是好用的可能python在windows的包和linux的包不一样吧
  • 输入控制阶段背景色和m间需要加上分号
import colorama
from colorama import init,Fore,Back,Style
init(autoreset=True)
print('TESTBASE')
print('\033[0;30;47;m'+ 'TEST1')
print('TEST2')
print('\033[1;30;47;m'+ 'TEST3')
print('\033[2;30;47;m'+ 'TEST4')
print('\033[4;30;47;m'+ 'TEST5')
print('\033[5;30;47;m'+ 'TEST6')
print('\033[7;30;47;m'+ 'TEST7')
print('\033[8;30;47;m'+ 'TEST8')

image-20210601145607588

即使这样貌似也只能做到字体颜色和背景颜色的部分切换(将就着用吧)

import colorama
from colorama import init,Fore,Back,Style
init(autoreset=True)
print('\033[1;31;47;mTEST1_char_color')
print('\033[1;32;47;mTEST2_char_color')
print('\033[1;33;47;mTEST3_char_color')
print('\033[1;34;47;mTEST4_char_color')
print('\033[1;35;47;mTEST5_char_color')
print('\033[1;36;47;mTEST6_char_color')
print('\033[1;37;47;mTEST7_char_color')
print('\033[1;37;41;mTEST1_back_color')
print('\033[1;37;42;mTEST2_back_color')
print('\033[1;37;43;mTEST3_back_color')
print('\033[1;37;44;mTEST4_back_color')
print('\033[1;37;45;mTEST5_back_color')
print('\033[1;37;46;mTEST6_back_color')
print('\033[1;37;47;mTEST7_back_color')

image-20210601153146810

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。

相关文章