zoukankan      html  css  js  c++  java
  • Python在命令行中使用print打印不同的颜色

    显示颜色格式:33[显示方式;字体色;背景色m......[33[0m

    书写格式:
         开头部分33[显示方式;前景色;背景色m + 结尾部分:33[0m

         解释:
    • 开头部分的三个参数:显示方式,前景色,背景色是可选参数,可以只写其中的某一个;
    • 由于表示三个参数不同含义的数值都是唯一的没有重复的,所以三个参数的书写先后顺序没有固定要求,系统都能识别;
    • 建议按照默认的格式规范书写。
    • 对于结尾部分,其实对后续输出信息的颜色样式定义,一般设置为系统默认,也可以省略,但是为了显示和书写规范,建议33[***开头,33[0m结尾。
     
    数值表示的参数含义:
    显示方式: 0(默认)、1(高亮)、22(非粗体)、4(下划线)、24(非下划线)、 5(闪烁)、25(非闪烁)、7(反显)、27(非反显)
    前景色:   30(黑色)、31(红色)、32(绿色)、 33(黄色)、34(蓝色)、35(洋 红)、36(青色)、37(白色)
    背景色:   40(黑色)、41(红色)、42(绿色)、 43(黄色)、44(蓝色)、45(洋 红)、46(青色)、47(白色)
     
    复制代码
    -------------------------------------------
    字体色     |       背景色     |      颜色描述
    -------------------------------------------
    30        |        40       |       黑色
    31        |        41       |       红色
    32        |        42       |       绿色
    33        |        43       |       黃色
    34        |        44       |       蓝色
    35        |        45       |       紫红色
    36        |        46       |       青蓝色
    37        |        47       |       白色
    -------------------------------------------
    -------------------------------
    显示方式     |      效果
    -------------------------------
    0           |     终端默认设置
    1           |     高亮显示
    4           |     使用下划线
    5           |     闪烁
    7           |     反白显示
    8           |     不可见
    -------------------------------
    复制代码
    print('33[1;36m床前明月光,')
    print('疑是地上霜。')
    print('举头望明月,')
    print('低头思故乡。33[0m')

    出处:https://www.cnblogs.com/hanfe1/p/10664942.html

    ==================================================================================

     我们在使用python运维与开发的过程中,经常需要打印显示各种信息。海量的信息堆砌在控制台中,就会导致各种信息都显示在一起,降低了重要信息的可读性。这时候,如果能给重要的信息加上差异的字体颜色,那么就会更加显眼,增加使用者可阅读性。 

    以前看别人写代码总是出现"33[1;31m......33[0m"  类似出现,

    我自己以为颜色输出必须"33[1;31m“开头,” 33[0m" 结尾构成一组,其实不然。

    实际上"33[1;31m...................."  表示的意思是“....................“引号里的内容显示打印一种颜色(红色),

    而后面的33[0m表示,后续如果有需要显示的内容,则显示另外一种颜色(默认颜色样式)。

    例如我们先写一个简单的要求用户输入的例子来了解一下:

    info = input("Please  Introduce yourself: ")
    print('33[1;33mWe asked him to introduce himself first.He said " %s ."33[3;31m' %info)
    print('这行是上一行结尾的颜色输出效果 '

    效果如图:

    第一行显示的是默认颜色样式

    第二行是:33[1;33m定义的颜色样式

    第三行是:33[3;31m定义的颜色样式,也就是第二行最后设置的

    一般情况是在末尾设置成系统默认颜色样式,使用:33[0m

    如果只需要一种颜色我们就可以简单一点:  

    复制代码
    #!/usr/bin/env python
    #-*- coding:utf-8 -*-
    print('33[0m这是显示方式0')
    print('33[1m这是显示方式1')
    print('33[4m这是显示方式4')
    print('33[5m这是显示方式5')
    print('33[7m这是显示方式7')
    print('33[8m这是显示方式8')
    print('33[30m这是前景色0')
    print('33[31m这是前景色1')
    print('33[32m这是前景色2')
    print('33[33m这是前景色3')
    print('33[34m这是前景色4')
    print('33[35m这是前景色5')
    print('33[36m这是前景色6')
    print('33[37m这是前景色7')
    print('33[40m这是背景色0')
    print('33[41m这是背景色1')
    print('33[42m这是背景色2')
    print('33[43m这是背景色3')
    print('33[44m这是背景色4')
    print('33[45m这是背景色5')
    print('33[46m这是背景色6')
    print('33[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-高亮显示 32-前景色绿色 40-背景色红色--- 33[0m #---采用终端默认设置,即缺省颜色---
    复制代码

    *具体格式*:

    设置颜色开始 :33[显示方式;前景色;背景色m    
    注:';'前后的三个参数:显示方式,前景色,背景色是可选参数,可以只写其中的某一个或者某两个;由于表示三个参数不同含义的数值都是唯一没有重复的,所以三个参数的书写先后顺序没有固定要求,系统都可识别;
    建议按照默认的格式规范书写

    实现过程:

    终端的字符颜色是用转义序列控制的,是文本模式下的系统显示功能,和具体的语言无关。转义序列是以ESC开头,即用33来完成(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('33[1;31;40m')     #下一目标输出背景为黑色,颜色红色高亮显示
    print('*' * 50)
    print('33[7;31m错误次数超限,用户已被永久锁定,请联系管理员!33[1;31;40m')  #字体颜色红色反白处理
    print('*' * 50)
    print('33[0m')
    复制代码
    
    

     效果

     

    出处:https://www.cnblogs.com/easypython/p/9084426.html

    ===========================================================================================

    完整测试代码:

    #!/usr/bin/python
    # encoding: utf-8
    # -*- coding: utf-8 -*-
    
    import os
    
    # 可以根据自己的需求,把常用的封装起来,用的时候直接调用就可以了
    class bcolors:
        cHEADER = '33[95m'
        cOKBLUE = '33[94m'
        cOKGREEN = '33[92m'
        cWARNING = '33[93m'
        cFAIL = '33[91m'
        cBOLD = '33[1m'
        cUNDERLINE = '33[4m'
        cEND = '33[0m'
    
    
    def test1():
        print('33[0m这是显示方式0')
        print('33[1m这是显示方式1')
        print('33[4m这是显示方式4')
        print('33[5m这是显示方式5')
        print('33[7m这是显示方式7')
        print('33[8m这是显示方式8')
        print('33[30m这是前景色0')
        print('33[31m这是前景色1')
        print('33[32m这是前景色2')
        print('33[33m这是前景色3')
        print('33[34m这是前景色4')
        print('33[35m这是前景色5')
        print('33[36m这是前景色6')
        print('33[37m这是前景色7')
        print('33[40m这是背景色0')
        print('33[41m这是背景色1')
        print('33[42m这是背景色2')
        print('33[43m这是背景色3')
        print('33[44m这是背景色4')
        print('33[45m这是背景色5')
        print('33[46m这是背景色6')
        print('33[47m这是背景色733[0m')
        print('33[2;36;43m这是综合颜色33[0m
    
    ')
            
            
    def test2():
        print('33[3;36m床前明月光,')
        print('疑是地上霜。')
        print('举头望明月,')
        print('低头思故乡。33[0m
    
    ')
    
    
    
    if __name__ == '__main__':
        os.system('clear')
        os.system('clear')
        print("
    __name__ is "+__name__+"
    ")
        test1()
        test2()
        
        #info = input("Please  Introduce yourself: ")
        info="hahaha"
        print("----------")
        print('33[1;33mWe asked him to introduce himself first.He said : 33[1;35m" %s ."33[3;31m' %info)
        print('这行是上一行结尾的颜色输出效果 
    
    ')
    
        print(bcolors.cHEADER + "警告的颜色字体?" +bcolors.cEND)
        print(bcolors.cOKBLUE + "警告的颜色字体?" +bcolors.cEND)
        print(bcolors.cOKGREEN + "警告的颜色字体?
    " +bcolors.cEND)
    
        print('This is a 33[1;35m test 33[0m!')
        print('This is a 33[1;32;41m test 33[0m!')
        print('33[1;33;44m  This is a test ! 33[0m
    ')
        
    View Code

    补充:

    今天遇到一个奇怪的问题,在Windows下编写好了的.py文件,copy到Linux中,直接执行,发现中文无法显示

    最后检查发现,是Windows和Linux系统之间的编码格式及换行等不统一,默认创建的txt文件不通用!~

    比如在Windows下换行符号是 ,而Linux下的是 。需要设置文件格式为:utf-8无BOM ,

    我这里是一的是UltraEdit另存为的,你也可以使用其他文本编辑工具另存为试试看。

  • 相关阅读:
    工资是用来支付给责任的,责任越大,工资越高。 涨工资,是因为承担了更大的责任。
    水平分库分表的关键问题及解决思路
    APP多版本共存,服务端如何兼容?
    ListView动态加载数据分页(使用Handler+线程和AsyncTask两种方法)
    Java 并发专题 :闭锁 CountDownLatch 之一家人一起吃个饭
    Java进阶 创建和销毁对象
    Java OCR tesseract 图像智能字符识别技术
    网页信息抓取进阶 支持Js生成数据 Jsoup的不足之处
    从原理角度解析Android (Java) http 文件上传
    android pop3与imap方式接收邮件(javamail)
  • 原文地址:https://www.cnblogs.com/mq0036/p/12864566.html
Copyright © 2011-2022 走看看