Python3错误打印背景颜色问题

2024-04-20 07:50:01 发布

您现在位置:Python中文网/ 问答频道 /正文

在Python3中,使用ANSI转义码为print的输出着色的标准命令似乎没有起作用

我相信这与最新版本的Python3所伴随的变化有关

我的系统:Python 3.7.3,Windows 10,空闲

尽管它在Python 2.7上运行良好,但在Python 3.7上它根本不起作用

  • print("\033[1;32;40m Bright Green \n")处于空闲状态,如图所示article输出[1;32;40m Bright Green。相反,这在提供彩色背景的在线Python 2解析器上运行良好

  • 发现在Python 3上转义字符是\x1b而不是\033的更正。在print语句中修改的表达式,例如空闲输出[1;32;40m Bright Green中的print("\x1b[1;32;40m Bright Green \n"),并且没有彩色背景

  • py文件上运行print("\033[1;32;40m Bright Green \n")仍然会输出[31;1;4mHello[0m
  • 由于我的本地系统之间存在差异,我尝试在在线Python 3解析器print("\033[1;32;40m Bright Green \n")上运行,它给了我[1;32;40m Bright Green

ANSI转义码的使用主要是作为链接中的解决方案提供的

我做错了什么


Tags: 命令版本解析器标准系统greenpython3空闲
2条回答

根据您使用的是终端还是空闲,您需要使用不同的代码。对于终端,有很多方法可以做到这一点,但是对于空闲,下面是我找到的方法

使用sys.stdout.shell.write(to_print, color),变量颜色为以下字符串之一

您可以使用以下颜色:

  • 内置
  • 控制台
  • 评论
  • stdout
  • 斯特德尔
  • 击中
  • 定义
  • 关键词
  • 错误
import sys

try:
    color = sys.stdout.shell
    color.write("Hi? \n","STRING")
except AttributeError:
    raise RuntimeError("Use IDLE")

python彩色库工作时没有任何问题。ANSI转义码不是那么平滑

pip install colored之后,您可以在from colored import stylized之后

然后试试看- print(stylize("This is green.", colored.fg("green")))

相关问题 更多 >