【问题标题】:Use colorama to change text color of Python input使用 colorama 更改 Python 输入的文本颜色
【发布时间】:2019-03-06 15:52:29
【问题描述】:

当我尝试在 python 输入语句中使用 colorama 时,它不起作用。这是我得到的输出:

[33mEnter the name of the AWS account you'll be working in:

它显示 ASCII 码而不是使用我想要的颜色。而且不会变色。

这是我的代码:

from colorama import init, Fore, Back, Style
init()
input(Fore.YELLOW + "Enter the name of the AWS account you'll be working in: ")

有什么办法可以让它工作吗?

我在 Windows 10 上运行我的环境。如果可能的话,我想要一个跨平台解决方案,因为其他人可能会在 linux 上运行它。

【问题讨论】:

  • 可能是您的环境...您在其中运行它的控制台?也许它不支持通过这些代码进行着色。 colorama 模块所做的只是输出正确的字符以在其他地方解释。 python 代码之外的东西必须监视这些字符并将文本转换为没有代码的彩色文本。

标签: python colorama


【解决方案1】:

代码不是问题。您显示的代码在我的控制台中给了我黄色文本。我在运行 iTerm 作为控制台的 Mac 上。它也适用于标准的 Mac 控制台。您运行此代码的环境似乎不支持彩色文本。你是如何运行这段代码的?

colorama 模块所做的只是输出正确的字符以供环境解释,通常是通过您正在执行代码的终端应用程序/命令。 python 代码之外的东西必须监视这些字符并将文本转换为没有代码的彩色文本。您的环境似乎没有这样做。

我认为这篇文章可能会解决这个问题。我无法测试它,因为我不在 Windows 上:

Colorama for Python, Not returning colored print lines on Windows

简短的回答似乎是:

init(convert=True)

但有人回复该帖子说这对他不起作用。帖子里有很多信息。

这是一个常见问题。行为取决于环境。该代码使用一组标准代码,但环境必须支持它们。由于这种对运行时环境产生颜色的依赖,可能不会有“无处不在”的解决方案。 Python 不会将文本呈现到屏幕上。 Python 不能使文本成为彩色文本。它只能遵循环境可能支持也可能不支持的一组规则。

【讨论】:

  • 好的,是的。我在 Windows 10 上运行它。我已经更新了 OP 以反映这一点。谢谢。
  • 好的,谢谢。但是不,不幸的是,这在 Windows 下不起作用。
【解决方案2】:

你可以在你的代码中使用它

colorama.init(autoreset=True)

【讨论】:

    猜你喜欢
    • 2014-07-17
    • 2020-09-08
    • 1970-01-01
    • 1970-01-01
    • 2016-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-15
    相关资源
    最近更新 更多