我同意你应该使用日志模块,但你真的不能做正确只是一个格式字符串像一些其他的答案显示,因为他们做的不能解决记录包含逗号的消息的情况。
如果你需要一个解决方案,将正确转义消息中的任何特殊字符(或其他领域,我想),你会写一个自定义的格式进行设置。
logger = logging.getLogger()
formatter = MyCsvFormatter()
handler = logging.FileHandler(filename, "w")
handler.setFormatter(formatter)
logger.addHandler(handler)
logger.setLevel(level)
你显然必须实现MyCsvFormatter类,它应该从logging.Formatter继承和覆盖format()方法
class MyCsvFormatter(logging.Formatter):
def __init__(self):
fmt = "%(levelname)s,%(message)s" # Set a format that uses commas, like the other answers
super(MyCsvFormatter, self).__init__(fmt=fmt)
def format(self, record):
msg = record.getMessage()
# convert msg to a csv compatible string using your method of choice
record.msg = msg
return super(MyCsvFormatter, self).format(self, record)
注:我以前做过这样的事情,但还没有测试过这个特殊的代码示例
至于做信息的实际逃逸,这里有一个可能的方法: Python - write data into csv format as string (not file)
您应该使用logging.Formatter实例与输出CSV行的格式。 –