【问题标题】:Change Color Output in Python in windows在 Windows 中更改 Python 中的颜色输出
【发布时间】:2019-07-26 01:04:51
【问题描述】:

我正在尝试使用以下代码将输出文本更改为绿色并将背景更改为蓝色:

print("\033[1;32;44m******************************************************\n")
print("\033[1;32;44m* Terminate Instance Operations in AWS Are Complete. *\n")
print("\033[1;32;44m******************************************************\n")

但输出是默认的 powershell 白色,并且数字代码是可见的。这是输出的样子:

[1;32;44m******************************************************

[1;32;44m* Terminate Instance Operations in AWS Are Complete. *

[1;32;44m******************************************************

我目前在 win 10 上运行脚本。我做错了什么?

【问题讨论】:

  • 您使用的是哪个版本的 Windows? Windows 7 conhost 不支持 VTY 转义。此外,早期版本的 Windows 10 主机也不支持 VTY。
  • 我使用的是 Windows 10 版本 1709。我也可以尝试在 linux VM 下运行它,看看它是否看起来有什么不同。

标签: python windows terminal-emulator


【解决方案1】:

根据您的 Windows 10 版本,您的控制台主机可能不支持使您能够使用这些转义序列的 VTY 仿真。您可以这样解决这个问题:

import os

os.system('COLOR 12')

更多信息请参见cmd.exe /c COLOR /?


要查看您的控制台是否支持,请在 PowerShell 中输入以下命令:

$Host.UI.SupportsVirtualTerminal

【讨论】:

  • 谢谢!效果很好!是的,给出最后一个命令告诉我我确实在控制台上有颜色支持。欣赏信息!
  • @bluethundr,默认不启用虚拟终端支持。 CMD 和 PowerShell 自己启用它,但在运行外部程序(如 python.exe)时恢复为默认值。默认情况下,我们可以通过将“HKCU\Console”中的“VirtualTerminalLevel”设置为 1 作为 DWORD 值来启用它。或者在 Python 中我们可以使用 ctypes 或 PyWin32 调用 GetConsoleModeSetConsoleMode 来手动启用它。
  • @ErykSun 很有趣。你能举个例子回答一下吗?
  • @not2qubit sp HKCU:/Console VirtualTerminalLevel 1 -Type DWord
  • 可以是任意非零值according to this documentation
猜你喜欢
  • 1970-01-01
  • 2023-04-11
  • 2015-05-30
  • 1970-01-01
  • 1970-01-01
  • 2016-06-03
  • 2021-01-07
  • 2013-08-27
  • 2011-08-22
相关资源
最近更新 更多