【问题标题】:print colored text as output in python not working在python中打印彩色文本作为输出不起作用
【发布时间】:2019-04-29 01:19:25
【问题描述】:

我正在尝试使用 python 使用彩色输出

1- 我尝试使用这种格式:

print '\033[1;30mGray like Ghost\033[1;m'

我得到了这个输出:

←[1;30mGray like Ghost←[1;m

2- 我尝试将 termcolor 包用作:

from termcolor import colored, cprint
text = colored('Hello, World!', 'red', attrs=['reverse', 'blink'])
print(text)

我得到了这个输出:

[5m[7m[31mHello, World![0m

为什么我不能在输出中使用颜色?

我尝试了其他方法并且都给出了几乎相同的输出 我还有其他方法可以尝试吗?

【问题讨论】:

  • 因为我很确定它是否支持彩色输出取决于控制台/编辑器,而不是代码本身。
  • 我在 Python(命令行)python.exe 上尝试过,结果也一样
  • 我猜this post可以帮助你理解。他们说这肯定取决于 Roko 所说的您正在使用的控制台,以及您正在执行 python 代码的操作系统。

标签: python


【解决方案1】:

我知道您只在对 Tom Dee 的回答的评论中提到了 Colorama,而不是在您的原始问题中,但我对 Colorama 有同样的问题,直到我添加了在尝试打印彩色文本之前初始化 Colorama 的代码:

from colorama import init
init()

【讨论】:

    【解决方案2】:

    在导入 loggingcoloredlogs 之前,我遇到了同样的问题

    from termcolor import colored
    import logging, coloredlogs
    logger = logging.getLogger(f"Logger")
    coloredlogs.install(logger=logger)
    

    它解决了我的问题。

    【讨论】:

      【解决方案3】:

      既然您评论说您使用的是 python.exe,我认为您只在 Windows 中尝试过。 Windows cmd 不支持 ANSI 编码,例如 termcolor 使用的 linux/unix。因此,您必须使用另一个包来执行此操作。我建议调查一下 colorama (https://pypi.org/project/colorama/)。

      from colorama import Fore, Back, Style
      print(Fore.RED + 'some red text')
      print(Back.GREEN + 'and with a green background')
      print(Style.DIM + 'and in dim text')
      print(Style.RESET_ALL)
      print('back to normal now')
      

      网站上的这个示例向您展示了如何将前景和背景更改为多种颜色。

      【讨论】:

      • 我试过这个但它不适合我例如这是你写的第一个打印的输出:←[31msome red text
      猜你喜欢
      • 2019-06-26
      • 1970-01-01
      • 1970-01-01
      • 2019-03-22
      • 2023-03-26
      • 2023-03-08
      • 2018-07-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多