Python ANSI颜色代码
在Windows打印中,Python打印不能像预期的ANSI颜色代码那样工作,直到subprocess.call()中的shell = True一次。Python ANSI颜色代码
在下面的链接中,它暗示着ANSI颜色代码应该使用“打印”命令开箱即用。
How to print colour/color in python? Print in terminal with colors using Python?
第二个提到VT100仿真...不知道究竟是什么意思。我可以编写一个输出颜色的批处理文件,所以我会(天真地)认为它应该在Python中以相同的方式工作。
但是我不能,因为它似乎ESC字符被“注释掉”(?),因为例如,当我
print(u"\u001b[31mHelloWorld")
我无法看到使用ANSI颜色代码因为ESC字符在Windows中似乎是必需的,并且在Python shell中以“[?]”打印(带有问号的框)
有没有我在这里丢失的东西?
我发现自己是一个答案。通常情况下,我只是看起来不够。
的COLORAMA模块可以与
py -m pip install colorama
被安装,并带有一个方法定义在模块的根称为init
colorama.init()
这是一个跨平台功能在它只对窗口有用(它保存反转的活动终端状态并写入终端以预处理ANSI代码),它什么也不做f或其他操作系统。
我在考虑使用ctypes实现一个更轻量级的解决方案,并且自己在活动终端上设置Interpret标志。
如果您有兴趣了解更多信息,请参见这里:
https://docs.microsoft.com/en-us/windows/console/console-virtual-terminal-sequences
输出序列 以下末端序列由控制台主机拦截时写入到输出流,如果ENABLE_VIRTUAL_TERMINAL_PROCESSING标志在屏幕缓冲区句柄上使用SetConsoleMode标志设置。请注意DISABLE_NEWLINE_AUTO_RETURN标志在仿真其他终端仿真器的光标定位和滚动行为时,也可能对写入任何行最后一列的字符有用。
强调我的。