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

面对
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

要查看解决方法,请点击此处:Printed length of a string in python(特别是the answer from user dawg)

点赞