我经常在终端上工作,并且经常想编写一些程序来对输出进行一些着色。例如,也许我正在查看测序读数,我想知道它的哪一部分是其被标记的原因。我可以使用colorama 、 termcolor或其他库,但包含这么简单的东西的依赖项并不值得。相反,打印彩色文本非常简单:
COLOR_RED_BOLD = '\x1b[1;31m' COLOR_BLUE_BOLD = '\x1b[1;34m' COLOR_END = '\x1b[0m' 打印( “一条鱼,两条鱼,” + COLOR_RED_BOLD +“红色”+ COLOR_END +“鱼,”+ COLOR_BLUE_BOLD +“蓝色”+ COLOR_END +“鱼。”)
我通常只需要一种或两种突出显示颜色,通常为粗体,并且很少发现六种标准颜色有限制。如果您想将注意力吸引到特定的事物上,同时在需要进一步观察时保持其周围的背景,那么这会特别有用。
这有多兼容?有一天,使用非 ANSI 终端的人会运行我的代码并抱怨吗?一个数据点是我在2009 年用这种方法编写了icdiff ,并且它相当流行。虽然我收到了数百份错误报告,但这从来没有人抱怨过。