打印格式被忽略还是被覆盖?

时间:2020-10-12 00:00:43

标签: python python-3.x formatting ansi-escape

我有两个要打印的字段,如果这些字段中的一个达到某个值,我想用红色打印以发出警告。

我有一些代码以红色显示,这些代码是我从任意数量的SO帖子(eg)抄袭而来的

def warning_text(text):
     CRED = '\033[31m'
     CEND = '\033[m'
     return CRED + text + CEND

大体上有效

>>> print('test')
test
>>> print(warning_text('test'))
test

(想象第二个测试是红色的,我找不到使其工作的格式)

但是当我应用格式设置时,红色仍然存在,但是格式设置丢失了:

>>> print('{:>9}{:>9}'.format('test','test'))
     test     test
>>> print('{:>9}{:>9}'.format('test',warning_text('test')))
     testtest

(同样,第4行中的第二个测试是红色的,但我不知道如何设置此文本的格式)

我已经尝试过其他类似功能的选项:

>>> def warning_text(text):
...      CRED = '\033[31m'
...      CEND = '\033[m'
...      return '{} {} {}'.format(CRED,text,CEND)

没有成功。

我在做什么错了?

0 个答案:

没有答案