如何在 Python 中将彩色文本输出到终端?

发布于 2022-02-17 09:44:14

如何在 Python 中将彩色文本输出到终端?

关注者
0
被浏览
73
1 个回答
  • 面试哥
    面试哥 2022-02-17
    为面试而生,有面试问题,就找面试哥。

    这在某种程度上取决于您所在的平台。最常见的方法是打印 ANSI 转义序列。举个简单的例子,下面是Blender 构建脚本中的一些 Python 代码:

    class bcolors:
        HEADER = '\033[95m'
        OKBLUE = '\033[94m'
        OKCYAN = '\033[96m'
        OKGREEN = '\033[92m'
        WARNING = '\033[93m'
        FAIL = '\033[91m'
        ENDC = '\033[0m'
        BOLD = '\033[1m'
        UNDERLINE = '\033[4m'
    

    要使用这样的代码,您可以执行以下操作:

    print(bcolors.WARNING + "Warning: No active frommets remain. Continue?" + bcolors.ENDC)
    

    或者,使用 Python 3.6+:

    print(f"{bcolors.WARNING}Warning: No active frommets remain. Continue?{bcolors.ENDC}")
    

    这将适用于包括 OS X、Linux 和 Windows 在内的 unix(前提是您使用ANSICON,或者在 Windows 10 中启用VT100 仿真)。有用于设置颜色、移动光标等的 ANSI 代码。

    如果您要对此感到复杂(听起来就像您正在编写游戏一样),您应该查看“ curses ”模块,它为您处理了很多复杂的部分。Python Curses HowTO是一个很好的介绍。

    如果您不使用扩展 ASCII(即,不在 PC 上),您会被 127 以下的 ASCII 字符卡住,而“#”或“@”可能是您最好的选择。如果您可以确保您的终端使用的是 IBM扩展 ASCII 字符集,那么您有更多选择。字符 176、177、178 和 219 是“block characters”。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看