如何使用python在终端中以ansi颜色打印文本? 我有这段代码来测试哪些代码对文本有什么影响:
←[0mAt 0 THIS happens! ←[0m
←[1mAt 1 THIS happens! ←[0m
←[2mAt 2 THIS happens! ←[0m
←[3mAt 3 THIS happens! ←[0m
←[4mAt 4 THIS happens! ←[0m
...
但我所看到的只是:
terminal.ansi
It works as intended in the online editor repl.it.
我知道主题设置中有<% if @post.previous.blog_key == 'blog' && @post.previous.visible == true %>
<%= link_to 'previous post', blog_post_path(@post.previous.url_name%>
<% else %>
<%= link_to 'Home', '/blog/home' %>
<% end %>
种颜色,但我如何访问它们?
答案 0 :(得分:2)
我会使用colorama包来支持Windows上的ANSI序列。
import colorama
colorama.init()
# your code with ansi sequences here
编辑:此方法与平台无关(ANSI序列不会在支持它们的终端上修改),并允许您在字符串中使用原始ANSI序列,并为您提供颜色定义。
答案 1 :(得分:1)
转义序列会因终端而异,如果stdout不是tty,那么事情会变得很奇怪。
在不依赖这些序列的情况下将颜色打印到终端的最简单方法是使用blessings
package。以下内容将以红色打印hello
,以绿色打印world
(例如):
from blessings import Terminal
term = Terminal()
print(term.red("hello"), term.green("world"))