Python使用Format方法格式化ASCII转义序列

Python使用Format方法格式化ASCII转义序列,python,python-3.x,colors,format,Python,Python 3.x,Colors,Format,您好,我正在尝试使用ASCII转义序列很好地格式化带有颜色的表格,但是当我应用颜色时,format方法不会格式化字符串,从而导致表格不对齐。应用颜色ASCII转义序列后,format方法没有格式化字符串是否有原因?另外,是否有更好的方法应用文本着色(注意,我无法在此系统上安装Coloroma或任何其他模块) 下面是可用于演示问题的可测试代码 代码: 未应用具有颜色格式的第二个输出: +--------------------------------------------------------

您好,我正在尝试使用ASCII转义序列很好地格式化带有颜色的表格,但是当我应用颜色时,format方法不会格式化字符串,从而导致表格不对齐。应用颜色ASCII转义序列后,format方法没有格式化字符串是否有原因?另外,是否有更好的方法应用文本着色(注意,我无法在此系统上安装Coloroma或任何其他模块)

下面是可用于演示问题的可测试代码

代码:

未应用具有颜色格式的第二个输出:

+---------------------------------------------------------+
| Number of Critical Issues Are:             | 100 |
+---------------------------------------------------------+
| Number of Major Issues Are:                | 200 |
+---------------------------------------------------------+
| Number of Minor Issues Are:                | 10 |
+---------------------------------------------------------+

string
format
方法确实在格式化字符串,但在确定填充时,它在其字符串长度计数中包含了所有ANSI颜色转义字符

要检查此项:
len(通过/失败('yellow',str(次要))


这个问题的解决方案是重新设置字符串格式,这样ANSI颜色代码字符就不会欺骗格式化程序。您可能需要手动调整列宽来实现这一点。非常好的观察。没有意识到它正在计算逃逸序列。我已经调整了代码,以适应开始和结束转义序列的长度,现在格式如预期的那样。谢谢你的帮助。
+---------------------------------------------------------+
| Number of Critical Issues Are:             |    100     |
+---------------------------------------------------------+
| Number of Major Issues Are:                |    200     |
+---------------------------------------------------------+
| Number of Minor Issues Are:                |     10     |
+---------------------------------------------------------+
+---------------------------------------------------------+
| Number of Critical Issues Are:             | 100 |
+---------------------------------------------------------+
| Number of Major Issues Are:                | 200 |
+---------------------------------------------------------+
| Number of Minor Issues Are:                | 10 |
+---------------------------------------------------------+