在 python 中打印彩色文本作为输出不起作用

Rag*_* Qu 5 python

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

\n\n

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

\n\n
print '\\033[1;30mGray like Ghost\\033[1;m'\n
Run Code Online (Sandbox Code Playgroud)\n\n

我得到这个输出:

\n\n
\xe2\x86\x90[1;30mGray like Ghost\xe2\x86\x90[1;m\n
Run Code Online (Sandbox Code Playgroud)\n\n

2-我尝试使用 termcolor 包:

\n\n
from termcolor import colored, cprint\ntext = colored('Hello, World!', 'red', attrs=['reverse', 'blink'])\nprint(text)\n
Run Code Online (Sandbox Code Playgroud)\n\n

我得到这个输出:

\n\n
[5m[7m[31mHello, World![0m\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n\n

我尝试了其他方法,但都给出了几乎相同的输出\n我可以尝试其他方法吗?

\n

Tom*_*Dee 0

既然您评论说您正在使用 python.exe,我认为您只在 Windows 中尝试过。Windows cmd 不支持像 termcolor 使用的 linux/unix 那样的 ANSI 编码。因此,您必须使用另一个包来执行此操作。我建议研究 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')
Run Code Online (Sandbox Code Playgroud)

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