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

时间:2018-11-27 10:13:40

标签: python

我正在尝试通过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

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

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

3 个答案:

答案 0 :(得分:1)

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

from colorama import init
init()

答案 1 :(得分: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')

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

答案 2 :(得分:0)

在导入 const numbers = [ 0.3333333333333333, 0.1111111111111111, 0.6666666666666666, 0.14285714285714285, 0.1444444444444444, 0.1555555555555555, ]; for (const number of numbers) { const str = String(number); if (/^0\.\d(\d)\1+$/.test(str)) { const truncated = Number(str.substring(0, 4)); const rounded = Math.round(Number(str.substring(0, 5) * 100)) / 100; console.log(`Truncated: ${truncated}, rounded: ${rounded}`); } else { console.log(str); } }#(properties.headers.database=="stats").payload 之前我遇到了同样的问题

logging

它解决了我的问题。