如何在Python中将彩色输出到终端?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (84)

对于Perl的python有等效的吗?

print color 'red';
print <something>;
print color 'reset';

我知道解决办法;

"\x1b[1;%dm" % (<color code>) + "ERROR: log file does not exist" + "\x1b[0m"

我想要的是我应该为所有的输出信息设置颜色

print color 'red'
function_print_something(<some message>)
print color 'reset'
提问于
用户回答回答于

我建议用sty,它类似于Colama,但不那么冗长,而且它支持8位和24位颜色,你还可以用自己的颜色扩展颜色寄存器。

from sty import fg, bg, ef, rs

foo = fg.red + 'This is red text!' + fg.rs
bar = bg.blue + 'This has a blue background!' + bg.rs
baz = ef.italic + 'This is italic text' + rs.italic
qux = fg(201) + 'This is pink text using 8bit colors' + fg.rs
qui = fg(255, 10, 10) + 'This is red text using 24bit colors.' + fg.rs

# Add new colors:

fg.orange = ('rgb', (255, 150, 50))

buf = fg.orange + 'Yay, Im orange.' + fg.rs


print(foo, bar, baz, qux, qui, buf, sep='\n')

演示:

用户回答回答于

代码如下:

from colorama import init, Fore, Back, Style
init()

def cprint(msg, foreground = "black", background = "white"):
    fground = foreground.upper()
    bground = background.upper()
    style = getattr(Fore, fground) + getattr(Back, bground)
    print(style + msg + Style.RESET_ALL)

cprint("colorful output, wohoo", "red", "black")

但是,你可能需要使用枚举和/或添加一些检查,而不是使用字符串。这不是最漂亮的解决方案,而是在OSX/Linux和Windows上工作,而且很容易使用。

扫码关注云+社区

领取腾讯云代金券