gpt4 book ai didi

python 格式采用织物彩色字符串的实际长度

转载 作者:行者123 更新时间:2023-11-28 19:15:46 25 4
gpt4 key购买 nike

我使用 python fabric 为终端输出着色,并使用字符串格式化来对齐文本。

颜色向字符串添加不可见代码,如何不破坏格式化输出?

>>> from fabric.colors import red
>>> print '{:->27}'.format('line one')
-------------------line one
>>> print '{:->27}'.format('longer line two')
------------longer line two
>>> print '{:->27}'.format(red('line three'))
--------line three
>>>

正如汉斯所说,我们只需添加 +9

>>> 
>>> print '{:->27}'.format('line one')
-------------------line one
>>> print '{:->27}'.format('longer line two')
------------longer line two
>>> print '{:->36}'.format(red('line three'))
-----------------line three
>>> print '{:->36}'.format(red('and more words'))
-------------and more words
>>> print '{:->36}'.format(red('and more words plus one'))
----and more words plus one
>>>

最佳答案

source code颜色的织物包含:

def _wrap_with(code):
def inner(text, bold=False):
c = code
if bold:
c = "1;%s" % c
return "\033[%sm%s\033[0m" % (c, text)
return inner

red = _wrap_with('31')

而你的“第三行”输出比其他行短 9 个字符的行,我猜 red(String) 的输出总是包含 9 个不可见字符,由字符串“\033[%sm%s\033[0m]”存储。

因此,要修复您的格式,当使用红色 (String) 时,您应该键入

print '{:->(27+9)}'.format(red('line three'))

代替

print '{:->27}'.format(red('line three'))

关于python 格式采用织物彩色字符串的实际长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33682001/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com