Python在pycharm工具中输出不同颜色的文字

在pycharm中,Python的print默认向屏幕输出指定的文字,一般所有的print输出都是指定一个颜色的。有时候我们需要输出不同颜色的内容的时候(例如多线程中,每个线程打印出的log颜色不一样,用于区分。又例如打印错误的log,用红色,警告的log用黄色,正常的log,用绿色),应该要怎么做呢?

python中提供了一种输出格式:

格式:"\033[显示方式;前景色;背景色m 需要输出的字符串 \033[显示方式m"

-------------------------------------------
-------------------------------------------
字体色     |       背景色     |      颜色描述
-------------------------------------------
 30      |        40       |       黑色|白色
 31      |        41       |       红色
 32      |        42       |       绿色
 33      |        43       |       黃色
 34      |        44       |       蓝色
 35      |        45       |       紫红色
 36      |        46       |       青蓝色
 37      |        47       |       白色/灰色
-------------------------------------------
-------------------------------
显示方式     |      效果
-------------------------------
  0        |     终端默认设置
  1        |     高亮显示
  22       |     非粗体
  4        |     下划线
  24       |     非下划线
  5        |     闪烁
  25       |     非闪烁
  7        |     反显
  27       |     非反显
-------------------------------

下面演示一段多线程不同线程输出不同颜色的例子。

def print_color(color_name,color):
    start_line = '\033[1;' + color + 'm '
    end_line = '\033[0m'
    print start_line + color_name + ' '+end_line


if __name__ == '__main__':
    import threading
    colors_names_list = ["我是白色/黑色(取决于当前输出栏的背景颜色)","我是红色","我是绿色","我是黄色","我是蓝色","我是紫色","我是深绿色","我是白色/灰色(取决于当前输出栏的背景颜色)"]
    threads_list = []
    colors_list = ['30', '31', '32', '33', '34', '35', '36', '37']
    loop_flag = 0
    for color_name in colors_names_list:
        t = threading.Thread(target=print_color, args=(color_name, colors_list[loop_flag]))
        t.start()
        threads_list.append(t)
        loop_flag += 1
    for t in threads_list:
        # t.setDaemon(True)
        t.join()

我们看下输出:

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值