ANSI转义代码在python解释器上不起作用
ANSI代码在我的python解释器上不起作用 我想给这个项目的一些照片上色。我查了一下如何给打印的字符上色,找到了ANSI转义码,所以我在解释器上试了一下,但不起作用 例如:ANSI转义代码在python解释器上不起作用,python,ansi-escape,Python,Ansi Escape,ANSI代码在我的python解释器上不起作用 我想给这个项目的一些照片上色。我查了一下如何给打印的字符上色,找到了ANSI转义码,所以我在解释器上试了一下,但不起作用 例如: print("\033[32m Hello") 它给我提供了您最好安装其他软件包来帮助生成ANSI序列,iirc win32控制台ANSI颜色。一种选择是安装。以下代码段打印出红色文本 import colorama from colorama import Fore, Back, Style colorama.ini
print("\033[32m Hello")
它给我提供了
您最好安装其他软件包来帮助生成ANSI序列,iirc win32控制台ANSI颜色。一种选择是安装。以下代码段打印出红色文本
import colorama
from colorama import Fore, Back, Style
colorama.init()
print(Fore.RED + 'This is red')
编辑:经过进一步研究,我意识到Windows10支持ANSI转义序列,您可以通过调用。如果要进行复制和粘贴,请使用
import os
os.system("echo [31mThis is red[0m")
不过,我还是喜欢前者。您可以使用IDLE。。。在这种情况下,你不能有ANSI颜色;空闲的“终端”不是真正的终端,因此ANSI代码将显示为字符,无论您键入chr(0x1B)
或\033
或\x1b
;都一样
你的箭头字符是正常的;我只是得到一个框,因为我猜默认字体不支持左箭头
但是另一个人的解释可能是正确的。。。除非您使用的是IDLE,因为在这种情况下,这肯定是问题所在。我无法重现这一点。当我把print(“\033[32m Hello”)
在Unix终端中运行python2 test.py
或python3 test.py
文件test.py
,我得到了绿色的Hello
。但我看到\033
在CP437中是左箭头。您是否尝试在Windows上执行此操作?您是否已经手动安装了解释ANSI所需的Windows软件转义?可能是您的终端应用程序不支持转义?您使用的终端应用程序是什么?Python解释器与ANSI转义序列无关。听起来您使用的是Windows,所以您需要安装一些使Windows控制台支持转义的东西。@martineau外壳不在应用程序和te之间的I/O路径中终端。@martineau实际上,内置终端(或Windows术语中的“控制台”)不是由cmd.exe
提供的,而是由控制台主机(conhost.exe
)和ClientServer运行时系统服务(csrss.exe
)的组合提供的。请参阅