我想在Python 2.7和Linux中的以下代码中为文本添加颜色。
$('#customerSearch').on('input', function(){
$('#customerSearch').trigger('keydown');
});
可以在终端中以彩色打印文本。但是,在像“ python script.py | cat”那样进行配管后,颜色将被删除。
我猜想Python会根据输出tty删除颜色。如何实现import colorama
colorama.init( strip=False )
print( colorama.Fore.RED + "Hello World!" + colorama.Fore.RESET )
和grep --color=always
之类的行为。
答案 0 :(得分:1)
该库的readme中对此有清楚的解释。
init()
接受一些**kwargs
来覆盖默认行为。...
init(strip=None)
:传递
True
或False
以覆盖是否应从输出中剥离ansi代码。默认行为是在Windows或输出重定向(不是tty)的情况下删除。
init(convert=None)
:传递
True
或False
以覆盖是否将输出中的ANSI代码转换为win32调用。默认行为是在Windows上进行转换,并将输出转换为tty(终端)。
假设您不在Windows上,那么答案是将strip=False
而不是默认的strip=None
传递给init
。就像传递--color=always
而不是将默认值传递给grep
或ls
一样。
当然,您的代码并不是一开始就调用init
。应该的,但是您逃避了,因为您可能不在Windows上:
应用程序应使用以下方法初始化Colorama:
from colorama import init
init()
在Windows上,调用
init()
将从所有发送到stdout或stderr的文本中过滤出ANSI转义序列,并用等效的Win32调用替换它们。在其他平台上,调用
init()
无效(除非您请求其他可选功能;请参见下面的“ Init Keyword Args”)。根据设计,这允许应用程序在所有平台上无条件调用init()
,此后ANSI输出应该可以正常工作。