【发布时间】:2020-09-24 12:59:10
【问题描述】:
在 Python 3 中使用 ANSI 转义码为print 的输出着色的标准命令似乎不起作用。
我相信,这与最新版本的 Python 3 所带来的变化有关。
我的系统: Python 3.7.3、Windows 10、IDLE。
虽然它在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语句中的修改表达式,例如 IDLE 中的print("\x1b[1;32;40m Bright Green \n")输出[1;32;40m Bright Green并且没有彩色背景。- 在
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 转义码的使用主要是作为链接中的一种解决方案提供的。
我做错了什么?
【问题讨论】:
-
“与最新版本的 Python 3 所带来的变化有关” - 你使用的是哪个版本,它在哪些版本中工作?什么平台?
-
我的版本是Python 3.7.3,平台是Windows 10
-
这在早期版本中是否有效?你读过例如stackoverflow.com/q/12492810/3001761?
-
您的本地环境和在线解析器之间可能存在其他差异 - 在线解析器是否显示 Python 3 中的颜色? Python 2 IDLE 是否在本地显示它们? IDLE 之外呢?
-
我可以在 IDLE 2.7 中确认
print("\033[1;32;40m Bright Green \n")打印到控制台[1;32;40m Bright Green(tkinterText小部件无法处理转义并且该功能尚未手动添加到 IDLE)。
标签: python python-3.x