python中自定义颜色输出日志



自定义函数:

def myPrint(msg,type=””):
#msg=
if type==””:
print(f”\033[0m”+msg)
elif type==”debug”:
print(f”\033[36m” + msg) #青色
logger.debug(msg.replace(“\n”,”\t”))
elif type==”trade”:
threading.Thread(target=playsound, args=(“trade.wav”, False)).start()
print(f”\033[32m” + msg) #绿色
logger.info(msg.replace(“\n”,”\t”))
elif type==”info”:
print(f”\033[32m” + msg) #绿色
logger.info(msg.replace(“\n”,”\t”))
elif type==”warning”:
#threading.Thread(target=playsound, args=(“warning.wav”, False)).start()
print(f”\033[33m” + msg) #黄色
logger.warning(msg.replace(“\n”,”\t”))
elif type==”error”:
print(f”\033[31m” + msg) #红色
logger.error(msg.replace(“\n”,”\t”))
elif type==”critical”:
print(f”\033[35m” + msg) #洋红
logger.critical(msg.replace(“\n”,”\t”))

显示颜色的格式
\033[显示方式;字体色;背景色m打印内容\033[0m
1
使用 \033[显示方式的编号;字体色编号;背景色编号m 来定义打印效果
每次使用这个语法(\033[显示方式的编号;字体色编号;背景色编号m)都会改变这之后的所有打印效果,直到遇到下一个 \033[显示方式的编号;字体色编号;背景色编号m 的时候才会更改成新的定义方式
所以通常在打印完想要使用这个效果打印的内容后在后边跟一个 \033[0m 目的就是让打印效果在回到原来默认的情况,否则上一次定义的效果会一直持续,包括空行、空格等。这也就说后边的 \033[0m 其实不是固定语法内的内容,不需要误解为 \033[显示方式;字体色;背景色m 和 \033[0m 是一个固定的配
显示颜色的参数
显示方式 效果
0 终端默认设置
1 高亮显示
4 使用下划线
5 闪烁
7 反白显示
8 不可见
字体色 背景色 颜色描述
30 40 黑色
31 41 红色
32 42 绿色
33 43 黄色
34 44 蓝色
35 45 紫红色
36 46 青蓝色
37 47 白色