子python ansi字符串库

kids.ansi的Python项目详细描述


https://pypip.in/v/kids.ansi/badge.pnghttps://secure.travis-ci.org/0k/kids.ansi.png?branch=master

kids.ansi是一个python库,在编写命令时提供帮助程序 python中的行实用程序。这是“孩子”的一部分(为了保持简单) 库,但可以在没有额外依赖项的情况下使用。

成熟度

此代码处于alpha阶段。其中的一部分是持续的反射。 这里所记录的应该不会有太大的变化,实际上是有效的。

功能

使用kids.ansi

  • 手动访问和插入ANSI转义序列。
  • 或者使用aformat包装器进行完全抽象。

注意,它非常接近termcolor的功能。

用法

a格式

kids.ansi具有一个aformat函数来返回字符串 准备打印,内部带有ANSI字符:

>>> from kids.ansi import aformat

>>> aformat("You", fg="red")
aformat('\x1b[31mYou\x1b[39m')

>>> aformat("Hello You, how are you?", fg="black", bg="blue", attrs=["bold", ])
aformat('\x1b[30m\x1b[44mHello You, how are you?\x1b[39m\x1b[49m')

注意aformat有点聪明

>>> you = aformat("You", fg="red")
>>> aformat("Hello, Are " + you + " Well", fg="blue")
aformat('\x1b[34mHello, Are \x1b[31mYou\x1b[34m Well\x1b[39m')

注意you的结束ansi序列是如何使蓝色变回的 而不是默认的颜色。所以“好”这个词仍然是蓝色的。

aformat很聪明,但仍然有一些限制,主要是 字符串插值:

>>> aformat("Hello, Are %s Well" % you, fg="blue")
aformat('\x1b[34mHello, Are \x1b[31mYou\x1b[39m Well\x1b[39m')

“好”这个词不是蓝色的。这是个问题。

访问ANSI序列

可以通过fg、bg、attr和 ctl attritbutes指令:

>>> from kids.ansi import FG, BG, ATTR, CTL

>>> FG.white
'\x1b[37m'
>>> BG.red
'\x1b[41m'
>>> BG.default
'\x1b[49m'
>>> ATTR.bold
'\x1b[1m'
>>> ATTR.unbold
'\x1b[21m'
>>> CTL.reset
'\x1b[0m'

因为这些都是口述,而且你不记得所有可访问的键,所以你可以 很容易反省他们:

>>> sorted(ATTR)  ## doctest: +NORMALIZE_WHITESPACE
['blink', 'bold', 'conceal', 'faint', 'italic', 'reverse', 'strike',
 'unblink', 'unbold', 'unconceal', 'underline', 'unfaint', 'unitalic',
 'unreverse', 'unstrike', 'ununderline']

然后您可以:

>>> "Hmm " + FG.red + "Hello" + FG.default + " you."
'Hmm \x1b[31mHello\x1b[39m you.'

打印出来。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Android同步不同页面上的按钮   java评测每个类收集的垃圾对象实例数   java(Spring MVC+Hibernate 4+Test 4)自动连线DAO返回NULL   java Android编辑文本和虚拟键盘   java Selenium与BrowserMobProxy   JAVAlang.NoClassDefFoundError:com/sun/jersey/spi/inject/Errors$关闭原因?   java为什么在我成功登录后仍然会出现“不正确的帐户或密码或用户类型”   安卓应用程序在重新启动java时崩溃。网UnknownHostException:无法解析主机   多线程在Java中同步共享静态对象的正确方法是什么?   未调用自定义注释的java类验证(约束类)   java如何将指定目录的存档文件放入所需位置?   java如何识别Selenium中的每个编辑文本字段,如果它们的Xpath都相同   使用gwtmockito/mockito的java简单单选按钮单元测试?