VSCode:终端中的ANSI颜色

时间:2018-04-19 19:28:53

标签: python python-3.x visual-studio-code ansi

如何使用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 %> 种颜色,但我如何访问它们?

2 个答案:

答案 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"))