如何解决ANSI 颜色不适用于使用 Windows 终端的 Windows 10 上的 Git Bash
我在带有 Windows 终端的 Windows 10 上使用 Git Bash,对于这个 Python 项目,ANSI 转义序列不起作用。
from colorama import init,Fore
from sys import stdout
init(convert=True)
# code ...
我尝试打印测试文本
# The code above
stdout.write('{GREEN}Test{RESET}'.format(GREEN=Fore.GREEN,RESET=Fore.RESET)
输出如下:
←[32mTest←[0m
我确信我的终端支持 ANSI 序列,因为我已经用 Bash、TS (Deno) 和 JS (NodeJS) 测试过它。他们都工作了。我还在命令提示符上进行了测试,它适用于 Python。也许这是 Git Bash 本身执行 Python 的问题?
我也尝试过直接编写十六进制代码,但仍然没有运气。检查下面的代码write.py
Example image
解决方法
浪费一些时间测试后,显然只使用 print
有效
#!/usr/bin/env python3
from colorama import init,Fore
from sys import stdout
# Initialize
init()
# Using `Fore`
print(f'{Fore.GREEN}Test{Fore.RESET}')
# Using actuall hex values
print('\x1B[31mTest\x1B[0m')
# Using stdout.write
stdout.write(f'{Fore.GREEN}Test{Fore.RESET}\n')
stdout.write('\x1B[31mTest\x1B[0m\n')
Test
Test
←[32mTest←[39m
←[31mTest←[0m
编辑:
使用 input
也会失败
# This will fail
xyz = input(f'{Fore.RED}Red text{Fore.RESET}')
# Consider using this as an alternative
print(f'{Fore.RED}Red text{Fore.RESET}',end='')
xyz = input()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。