Python如何输出带颜色的文字方法

发表于:2018-5-28 09:25

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:头发乱刘    来源:博客园

  我们在使用python运维与开发的过程中,经常需要打印显示各种信息。海量的信息堆砌在控制台中,就会导致各种信息都显示在一起,降低了重要信息的可读性。这时候,如果能给重要的信息加上差异的字体颜色,那么就会更加显眼,增加使用者可阅读性。 
    以前看别人写代码总是出现"/033[1;31m..................../033[0m"类似出现,以为颜色输出必须"/033[1;31m“开头,” /033[0m" 结尾构成一组,其实不然。实际"/033[1;31m..................../033[0m"意思表示“....................“引号里的内容显示打印一种颜色,结尾如果有输入的话显示另外一种颜色打印。
    例如我们先写一个简单的要求用户输入的例子来了解一下: 
  info = input("Please  Introduce yourself: ")
  print('\033[1;33mWe asked him to introduce himself first.He said \" %s .\"\033[3;31m' %info)
  print('这行是上一行结尾的颜色输出效果 ')
  
  效果如图:
    如果只需要一种颜色我们就可以简单一点:  
  #!/usr/bin/env python
  #-*- coding:utf-8 -*-
  print('\033[0m这是显示方式0')
  print('\033[1m这是显示方式1')
  print('\033[4m这是显示方式4')
  print('\033[5m这是显示方式5')
  print('\033[7m这是显示方式7')
  print('\033[8m这是显示方式8')
  print('\033[30m这是前景色0')
  print('\033[31m这是前景色1')
  print('\033[32m这是前景色2')
  print('\033[33m这是前景色3')
  print('\033[34m这是前景色4')
  print('\033[35m这是前景色5')
  print('\033[36m这是前景色6')
  print('\033[37m这是前景色7')
  print('\033[40m这是背景色0')
  print('\033[41m这是背景色1')
  print('\033[42m这是背景色2')
  print('\033[43m这是背景色3')
  print('\033[44m这是背景色4')
  print('\033[45m这是背景色5')
  print('\033[46m这是背景色6')
  print('\033[47m这是背景色7')
 Pytharm效果如图:
    书写格式,和相关说明如下: 
  说明:
  前景色         背景色           颜色
  ---------------------------------------
  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           非反显
  8                    不可见
  28           可见
   
  例:
  \033[1;32;41m   #---1-高亮显示 31-前景色绿色  40-背景色红色---
  \033[0m         #---采用终端默认设置,即缺省颜色--- 
        
  *具体格式*:
  设置颜色开始 :\033[显示方式;前景色;背景色m    
  注:';'前后的三个参数:显示方式,前景色,背景色是可选参数,可以只写其中的某一个或者某两个;由于表示三个参数不同含义的数值都是唯一没有重复的,所以三个参数的书写先后顺序没有固定要求,系统都可识别;
  建议按照默认的格式规范书写   
  实现过程:
   终端的字符颜色是用转义序列控制的,是文本模式下的系统显示功能,和具体的语言无关。转义序列是以ESC开头,即用\033来完成(ESC的ASCII码用十进制表示是27,用八进制表示就是033)。
   数值表示的参数含义:
   显示方式: 0()、1()、22()、4()、24()、 5()、25()、7()、27()、8()、28()
   前景色: 30()、31()、32()、 33()、34()、35()、36()、37()
   背景色: 40()、41()、42()、 43()、44()、45()、46()、47()
   
  实例
  #!/usr/bin/env python
  #-*- coding:utf-8 -*-
  print('\033[1;31;40m')     #下一目标输出背景为黑色,颜色红色高亮显示
  print('*' * 50)
  print('\033[7;31m错误次数超限,用户已被永久锁定,请联系管理员!\033[1;31;40m')  #字体颜色红色反白处理
  print('*' * 50)
  print('\033[0m')
   效果



上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号