在命令行/shell 中为文本着色的简单跨平台 Python 方式

问题描述 投票:0回答:4

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

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

不过我不需要太复杂,一些基本的颜色就可以了。

python command-line cross-platform
4个回答
3
投票

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

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

或者您也可以查看像 termcolorcolorama 这样的库以供参考。

*编辑:刚刚看到这个示例并不是真正功能齐全。要使其工作

33[
必须替换为
\033[


2
投票

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

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

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

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

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


1
投票

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

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


0
投票

尝试 ColorScript。

它不仅有颜色,还有背景颜色、亮色、暗色、数据以及编程中命名的每种颜色(r,g,b),这在其他模块和八进制中是不可能的(你正在做的事情)现在)。

pip 安装 ColourScript。

https://pypi.org/project/ColourScript/

© www.soinside.com 2019 - 2024. All rights reserved.