我在终端上用颜色打印通过和失败以及一些输出文件。
终端输出:
Parameter Output Result
------------ ------------ -------
Timer Enabled Enabled Passed
文件输出(使用vim编辑器打开):
Parameter Output Result
------------ ------------ -------
Timer Enabled Enabled ^[[92mPassed^[[0m
在 python 中我使用了下面的代码:
HEADER = '\033[95m'
OKBLUE = '\033[94m'
OKGREEN = '\033[92m'
WARNING = '\033[93m'
FAIL = '\033[91m'
ENDC = '\033[0m'
BOLD = '\033[1m'
UNDERLINE = '\033[4m'
代码执行发生在 linux 机器上,文件打开将在 windows 机器(word pad 或 notepad++)和 linux 上完成,比如 vim 编辑器。
现在我需要帮助,当我从 vim 或 Windows 字板打开文件时。我不想看到像“^[[92mPassed^[[0m”这样的颜色代码太丑了。任何人都可以帮助我实现结果的最佳选择
最佳答案
如果文件输出是通过
python script.py > foo.txt
您可以使用 os.isatty(1)
(其中 1 是标准输出的文件句柄)来确定输出是否附加到终端(而不是文件)。如果它连接到终端,则不要输出颜色控制代码。
你也可以很自然地用类似的东西去除控制代码事后
text = re.sub('\033\\[\d+m', '', text)
关于Python 处理终端和文件中的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46971566/