- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在 Python 2.7 和 Linux 中为以下代码中的文本添加颜色。
import colorama
colorama.init( strip=False )
print( colorama.Fore.RED + "Hello World!" + colorama.Fore.RESET )
文本可以在终端中用颜色打印。但是,像“python script.py | cat”这样的管道后颜色会被删除。我猜想 Python 根据输出 tty 删除颜色。如何实现像 grep --color=always
和 ls --color=always
这样的行为。
最佳答案
这在readme中有清楚的解释。对于图书馆。
init()
accepts some**kwargs
to override default behaviour.…
init(strip=None)
:Pass
True
orFalse
to override whether ansi codes should be stripped from the output. The default behaviour is to strip if on Windows or if output is redirected (not a tty).
init(convert=None)
:Pass
True
orFalse
to override whether to convert ANSI codes in the output into win32 calls. The default behaviour is to convert if on Windows and output is to a tty (terminal).假设您不在 Windows 上,那么答案是传递
<小时/>strip=False
而不是默认的strip=None
至init
。这就像传递--color=always
一样而不是默认的grep
或ls
.当然你的代码没有调用
init
首先。您应该是这样,但您却侥幸逃脱了,因为您可能不在 Windows 上:Applications should initialise Colorama using:
from colorama import init
init()
On Windows, calling
init()
will filter ANSI escape sequences out of any text sent to stdout or stderr, and replace them with equivalent Win32 calls.On other platforms, calling
init()
has no effect (unless you request other optional functionality; see “Init Keyword Args”, below). By design, this permits applications to callinit()
unconditionally on all platforms, after which ANSI output should just work.
关于Python2.7 : How can I redirect texts with colors,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51229559/
我是一名优秀的程序员,十分优秀!