[英]How to print \[ and \] to terminal from python?
我能够使用诸如print "\\033[31m red text \\033[0m"
代码将python的ANSI颜色代码从python打印到终端,该命令以红色打印“ red text”。
但是,在换行时,终端仍会计算不可见的控制字符,因此文本会不正确地换行,就好像行比实际的要长。 反向搜索也很奇怪,显示的文本与光标下的实际内容不匹配。
以下链接(和其他链接) https://wiki.archlinux.org/index.php/Color_Bash_Prompt#Regular_user_2似乎表明我需要将颜色代码包装在\\[
和\\]
以便终端可以将光标正确放置在屏幕。 但是,当我在python中print "\\[\\033[31m\\]"
时,括号会显示在屏幕上。
如何从python将\\[
和\\]
控制字符发送到终端?
(我发现颜色库(例如colored
)有相同的问题)
请勿在颜色代码周围使用[]。 只需创建以下变量即可。
red = '\033[31m'
print red
基于@chepner的评论-我的问题涉及修改终端中的PS1
变量以获得彩色提示。
从python直接打印\\[
和\\]
可以在屏幕上显示这些字符,但是当传递给PS1
,这些字符是不可见的,彩色文本可以正确显示并正确包装在屏幕上。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.