子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在Hibernate中从两个具有不同功能的表(postgreSQL)映射一个实体   java jfreechart需要自定义Y轴,以便打印   Java:从外部获取类。罐子   java如何获取Appium服务器日志   具有完全相同内容的java重写函数会导致错误   java消息的类路径是什么。属性(如果在依赖项jar中)   循环/相等的java问题==   java如何使用ionic cordova angularjs将所选图像发送到spring controller以保存到服务器?   库中的java语言环境数据   java从JSON webservice检索安卓中的字节[]   调试如何从Java中的类调试方法?   java将日期字符串切割成变量   无法使用java附加到文件?