我正在写各种实用程序,我真的很喜欢彩色文本。没什么特别的,只是用转义序列。我创建了一个简单的类,它有一个pprint(msg,color)函数。在找到代码here之后,我让它很容易地工作。
我遇到的问题是我应该能够在打印后关闭颜色。例如,假设一个用户运行我的程序,该程序以默认终端颜色打印几乎所有内容,但有一个错误,我想以红色打印该错误。我在错误消息前面加上“\033[0;32m”,消息是红色的。不幸的是,在我更改之前,所有文本都是红色的。当我的程序运行时,这通常是可以的,因为我知道消息应该是什么颜色的。但是,在我的程序结束后,颜色仍然保持不变。基本上,我想在程序启动时读取当前颜色,并在完成时还原。与退出时脚本还原pwd的方式相同。
如何读取当前转义序列?
系统: 红帽5.x 猛击 Python2.3
谢谢你的帮助。
此函数将返回一个将打印彩色的字符串,随后终端将自动重置。
我不相信那是可能的,如果是的话。最好的方法是发送
sgr0
,将所有属性重置为默认值(而不是以前的值)。在xterms上,sgr0
是Esc[m
。如果要重置颜色而不影响其他属性,请发送op
,xterms上的Esc[39;49m
。这些代码不应硬编码。你应该使用terminfo,termcap或[n]咒语。
与其使用模糊的转义序列,不如使用
tput
工具。以下是我的~/.bashrc
中的一段摘录,用于PS1提示:要重置颜色信息,使后续文本为正常的终端颜色,可以将
${NORMAL}
附加到结尾,如下所示:echo "${RED}this is red ${NORMAL}this is normal"
相关问题 更多 >
编程相关推荐