vim 仅使用Python ANSI代码更改一行的输出颜色?

flvlnr44  于 2023-10-20  发布在  Python
关注(0)|答案(1)|浏览(87)

我有一个Python脚本,在出现错误的情况下有几个输出,如果出现错误,我希望消息以红色打印。我使用ANSI代码来实现这一点,如下面的示例所示:

except Exception as e:
        print(f"\033[1;31;40m An error occurred while verifying alerts: {str(e)}")

但是,这会使shell中的所有输出都变成红色。我希望它只是错误消息,其余的文本是默认颜色,像这样:enter image description here但它看起来像这样:enter image description here正如你所看到的,即使在程序运行完成后,我输入的所有内容都变成了红色。我在Vim中编辑python文件,我想不出一种方法来使用ANSI代码只改变代码的一种颜色。我是不是漏掉了什么?或者ANSI颜色代码应该永久地改变shell中该会话的所有文本的颜色吗?
到目前为止,我能想到的唯一解决方案是将白色文本颜色的ANSI代码放在每个错误消息的末尾,以便下面的文本返回到白色,但很明显,根据shell中的自定义查看选项,默认文本颜色将根据运行程序的用户而不同。因此,我更愿意找到一种方法,使只有一行红色,这样的话,其余的文本是其自然的默认颜色。

q3qa4bjr

q3qa4bjr1#

您需要使用RESET ANSI代码来重置应用的样式:

print(f"\033[1;31;40m An error occurred while verifying alerts: {str(e)}\033[0m")

我经常在ANSI代码中使用this cheatsheetESCAPE序列在Python中是\033

相关问题