基本上,我想要一种简单的跨平台方式在命令行/shell 中为文本着色。
我真的希望这不涉及导入模块,但由于跨平台支持非常复杂,我知道它可能必须这样做。
不过我不需要太复杂,一些基本的颜色就可以了。
编写ANSI excape序列不需要任何花哨的东西,应该相当容易。
这里是一个基本示例,展示了如何手动完成。*
或者您也可以查看像 termcolor 或 colorama 这样的库以供参考。
*编辑:刚刚看到这个示例并不是真正功能齐全。要使其工作
33[
必须替换为 \033[
为终端输出着色的机制非常通用。这是通过将转义命令回显到输出流中来完成的。
http://en.wikipedia.org/wiki/ANSI_escape_code
真正的关键是确定您正在查看的终端是否支持着色。例如,如果输出被重定向到文件,那么转义序列只会使您的输出流变得混乱,因为您最终可能会使用文本编辑器读取该文件。
确定终端窗口的功能通常是通过称为“termcap”的东西来处理的,并且有几个用于此目的的库具有确切的名称。这也经常被整合到功能更强大的库中,例如curses。
如果您想要跨平台/稍微复杂的东西,则必须使用模块。
我建议使用 pypi.python.org/pypi/colorama,它是跨平台的。
尝试 ColorScript。
它不仅有颜色,还有背景颜色、亮色、暗色、数据以及编程中命名的每种颜色(r,g,b),这在其他模块和八进制中是不可能的(你正在做的事情)现在)。
pip 安装 ColourScript。