子python ansi字符串库
kids.ansi的Python项目详细描述
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.'
打印出来。