Python 字符串对齐不适用于ansi颜色

Python 字符串对齐不适用于ansi颜色,python,text,printing,colors,format,Python,Text,Printing,Colors,Format,用Python面对这个问题: a = "text" print('{0:>10}'.format(a)) # output: text b = "\x1b[33mtext\x1b[0m" print('{0:>10}'.format(b)) # output: text 正如您所见,一旦将着色标记添加到文本中,正确的对齐就停止工作。第二个“文本”应该缩进为第一个,但它不是。这是意料之中的,因为数据已经超过了字段宽度: >>> len(b) 13 >

用Python面对这个问题:

a = "text"
print('{0:>10}'.format(a))
# output:      text
b = "\x1b[33mtext\x1b[0m"
print('{0:>10}'.format(b))
# output: text

正如您所见,一旦将着色标记添加到文本中,正确的对齐就停止工作。第二个“文本”应该缩进为第一个,但它不是。这是意料之中的,因为数据已经超过了字段宽度:

>>> len(b)
13
>>> len('{0:>10}'.format(b))
13

要查看解决方法,请选中此处:(特别是)

有趣。可以确认这对f字符串也不起作用:
print(f{b:>10}”)
,所以至少它是一致的哈,注意,
len(b)
是13。。。有道理我猜胡安帕,你是对的,这就是原因。谢谢你的快速回复!请不要破坏你的帖子。如果您认为您的问题没有用处或不再有用,则应将其删除,而不是编辑掉所有使其成为问题的数据。通过在Stack Exchange网络上发布,您已授予SE分发该内容的不可撤销权利(根据CC By-SA 3.0许可证)。根据SE政策,任何故意破坏行为都将被恢复。您可以删除我的帐户吗?