使用Curses或ANSI转义序列。开始喷射转义序列之前,应检查stdout是tty。您可以使用sys.stdout.isatty()
。这是一个从我的项目中提取的函数,该函数使用ANSI转义序列根据状态以红色或绿色打印输出:
def hilite(string, status, bold):
attr = []
if status:
# green
attr.append('32')
else:
# red
attr.append('31')
if bold:
attr.append('1')
return '\x1b[%sm%s\x1b[0m' % (';'.join(attr), string)