1

基本上,我想要一种在命令行/shell 中为文本着色的简单(ish)、跨平台方式。

我真的希望这不涉及导入模块,但由于跨平台支持非常复杂,我知道它可能必须这样做。

我不需要它太复杂,只要几个基本的颜色就可以了。

4

3 回答 3

3

编写ANSI excape 序列不需要任何花哨的东西,而且应该相当容易。

是一个基本的例子,展示了如何手动完成。*

或者,您也可以查看诸如termcolorcolorama之类的库以供参考。

*编辑:刚刚看到这个例子并不是真正的功能齐全。要使其工作33[必须替换为\033[

于 2012-06-02T09:36:51.137 回答
2

着色终端输出的机制非常普遍。这是通过将转义命令回显到输出流中来完成的。

http://en.wikipedia.org/wiki/ANSI_escape_code

真正的关键是确定您正在查看的终端是否支持着色。例如,如果输出被重定向到一个文件,那么转义序列只会使您的输出流变得混乱,因为您最终可能会使用文本编辑器读取文件。

确定终端窗口的功能通常是通过称为“termcap”的东西来处理的,并且有几个用于此目的的库,具有该确切名称。这也经常被卷入功能更强大的库中,例如curses。

而且,事实证明,你很幸运:http ://docs.python.org/library/curses.html

于 2012-06-02T09:36:58.860 回答
1

如果您想要跨平台/稍微复杂的东西,则必须使用模块。

我建议使用跨平台的 pypi.python.org/pypi/colorama。

于 2012-06-02T09:39:49.300 回答