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