【发布时间】:2012-12-17 22:11:03
【问题描述】:
在 Python 2 中,我使用 str.format() 将我打印到终端的一堆文本列对齐。基本上,它是一张表格,但我没有打印任何边框或任何东西——它只是文本行,对齐到列中。
- 没有任何色彩摆弄,一切都按预期打印。
- 如果我用 ANSI 颜色代码包裹一整行(即一个
print语句),所有内容都会按预期打印。 - 但是:如果我尝试使每一列在一行中具有不同的颜色,则对齐会被抛出。从技术上讲,alignment 被保留了; 填充字符(空格)没有按需要打印;事实上,填充字符似乎已被完全删除。
我已经验证了 colorama 和 xtermcolor 的相同问题。结果是一样的。因此,我确定这个问题与 str.format() 不能很好地处理字符串中间的 ANSI 转义序列有关。
但我不知道该怎么办! :(我真的很想知道这个问题是否有任何解决方法。
颜色和对齐是提高可读性的有力工具,而可读性是软件可用性的重要组成部分。如果可以在不手动对齐每列文本的情况下完成此操作,那对我来说意义重大。
帮助不大? ☺
【问题讨论】:
-
如果您想要的不仅仅是“Python .format() 不会对 ANSI 转义字符有任何不同”,您需要向我们展示您的(部分)代码。
-
我知道在没有代码本身的情况下提供帮助会比较棘手。对于那个很抱歉。不过,我希望得到像下面发布的@MartijnPieters 这样的答案。如果我没有任何运气,我会继续发布代码。
标签: python string terminal ansi-colors