孩子们Python ANSI字符串库
项目描述
孩子们.ansi 是一个Python库,提供在Python中编写命令行实用程序时的辅助功能。它是“孩子们”(Keep It Dead Simple的缩写)库的一部分,但也可以在不添加额外依赖项的情况下使用。
成熟度
此代码处于测试版阶段。其中一部分正在进行反思。此处记录的内容不太可能改变,实际上是可以工作的。
功能
使用 孩子们.ansi
手动访问和插入ANSI转义序列。
或者使用 aformat 包装器以实现完全抽象。
注意,它与 termcolor 非常相似。
使用方法
aformat
孩子们.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序列将蓝色颜色设置回默认颜色,而不是蓝色。因此,单词“Well”仍然显示为蓝色。
aformat 是聪明的,但仍有一些限制,主要影响字符串插值
>>> aformat("Hello, Are %s Well" % you, fg="blue") aformat('\x1b[34mHello, Are \x1b[31mYou\x1b[39m Well\x1b[39m')
单词“Well”没有蓝色。这是一个问题。
访问ANSI序列
可以通过FG、BG、ATTR和CTL属性字典访问原始ANSI颜色序列
>>> 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.'
并打印它。
项目详情
关闭
kids.ansi-0.0.1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 47386c534acc25f236c379e04379931884ff4f1b589dbc1175b7ca89ee3e50f4 |
|
MD5 | 0a472c4658349a4472aa7a0aa37d1293 |
|
BLAKE2b-256 | 8623b58b70987bcdad412f46df7118176ac133400482e95841c7b424c4e7cac5 |