gpt4 book ai didi

python - 从输出日志文件中排除 ANSI 转义序列

转载 作者:行者123 更新时间:2023-12-05 04:07:20 25 4
gpt4 key购买 nike

我已经设置了一类颜色,使标准输出在出现警告时更易于阅读。我还想将所有打印语句写入日志文件。

# Colour set up
class colours:
warning = '\033[93m'
colour1 = '\033[94m'
colour2 = '\033[1m'
terminate = '\033[0m'

# Logger set up
class Logger(object):
def __init__(self):
self.terminal = sys.stdout
self.log = open(“output.log”, "a")

def write(self, message):
self.terminal.write(message)
self.log.write(message)

sys.stdout = Logger()

# Example
print colours.warning + ‘WARNING!’ + colours.terminate

*in colour*:$ WARNING!

*in output.log*: [93mWARNING!

有没有什么方法可以写入也会为 output.log 文件着色的字符,或者以彩色打印到标准输出但不在日志文件中包含“[94m”?为了方便用户,我不想要求安装任何非本地 python 包。

最佳答案

使用像 \x1b\[[0-9;]*m 这样的正则表达式在写入 output.log 对象时去除 ANSI 代码?

import re

ansi_re = re.compile(r'\x1b\[[0-9;]*m')

# ...

self.log.write(re.sub(ansi_re, '', message))

关于python - 从输出日志文件中排除 ANSI 转义序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48782529/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com