暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Python 轻量级 console 颜色输出库

生有可恋 2022-07-30
1830

Python 自带的格式输出可以输出不带颜色的纯文本,如果有颜色需求可以使用第三方工具库。


今天介绍的是一款轻量级的输出库,库名为 wasabi 。


Github 项目地址:

  • https://github.com/ines/wasabi


PyPI 包的地址:

  • https://pypi.org/project/wasabi


之所以说是一款轻量级的颜色输出库,是因为它的功能不像其它库复杂,只提供最简单的颜色输出。例子:



安装:

    pip install wasabi

    Demo代码:

      from wasabi import Printer
      msg = Printer()
      msg.divider("A headline")
      msg.good("This is a success message")
      msg.fail("This is a error message")
      msg.warn("This is a warning message")
      msg.info("This is a info message")
      print("This is a regular text")


      测试发现,这套库只支持 Linux 的 console,在 cmd 或 powershell 下执行会输出颜色代码,类似这种:



      它的内部实现还是使用的 linux 的颜色字符前缀,在 windows 的终端下不支持颜色输出。


      wasabi 实现了一个 Printer 的类,在类下面定义的四个用于颜色输出的方法,分别用于四种告警场景:

      • good()

      • fail()

      • warn()

      • info()


      同时 Printer 类下面还有一个属性 counts 用来存储各种告警的数量,当需要统计告警信息时会比较有用。

        >>> msg.counts
        Counter({'good': 1, 'fail': 1, 'warn': 1, 'info': 1})


        Printer 可以在需要时关闭颜色输出,甚至不输出,这在需要禁用调试信息时比较有用,所用到的属性为:

        • show_color 默认值为True,False 表示关闭颜色开关

        • no_print      默认值为False, True 表示不打印,函数返回字符串


          >>> from wasabi import Printer
          >>> msg = Printer()
          >>> msg.show_color
          True
          >>> msg.good('hello')
          ✔ hello
          >>> msg.no_print
          False
          >>> msg.no_print = True
          >>> msg.good('hello')
          '\x1b[38;5;2m✔ hello\x1b[0m'


          这两个属性在调试程序时会非常有用,当不需要颜色输出时,将show_color设置为False,此时输出的就是纯文本。当需要禁用调试信息时,可以将 no_print 设置为 True,此时将关闭输出,屏幕将变得非常简洁。


          除了这款轻量级的颜色库,如果想尝试更复杂的颜色工具库,相似的项目还有:

          • https://pypi.org/project/colored/

          • https://github.com/kennethreitz/crayons

          • https://github.com/timofurrer/colorful

          • https://bitbucket.org/astanin/python-tabulate

          • https://github.com/mixmastamyk/console

          • https://github.com/gravmatt/py-term


          全文完。


          如果转发本文,文末务必注明:“转自微信公众号:生有可恋”。


          文章转载自生有可恋,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

          评论