【发布时间】:2019-04-03 21:41:41
【问题描述】:
我正在尝试使用 Python 中的日志记录库将字符串列表写入 CSV 日志文件
记录器创建:
export_logger = logging.getLogger('exportLogger')
export_logger.setLevel(logging.INFO)
file_handler = logging.FileHandler('export_log.csv',mode='w')
export_logger.addHandler(file_handler)
export_logger.info(",".join(['status', 'view', 'filename', 'stdout', 'stderr', 'time']))
日志记录:
column_list = [status, view, filename, out, err, current_time]
message = ",".join([str(item) for item in column_list])
export_logger.info(message)
我的问题是,如果任何字符串包含换行符或逗号,它会破坏输出。我可以用引号将它们括起来,但是如果它们包含引号,它就会中断。我可以逃避这些,但我宁愿不重写代码来解析 CSV 文件写入的所有边缘情况。有什么好办法处理吗?
有没有一种方法可以轻松清理字符串以写入 CSV?我可以这样做: How do I write data into csv format as string (not file)? 但这似乎很迂回,不可读。
我只使用日志库,因为我认为这是最佳实践,但如果它无法处理 CSV 格式,我不妨打开一个模块级 CSV 文件并使用 python csv 库向其写入行,对吧?
【问题讨论】:
-
除非您有非常令人信服的理由为此使用
logging,否则您应该使用csv。 -
@CertainPerformance 我以为我确实有解决方案,但后来意识到我没有并再次取消删除问题哈哈。我认为我链接文章中的解决方案有效,因为我对其进行了修改以将数组保留为数组,但后来发现它甚至根本不是深层副本。 screencast.com/t/ZYoHERJt6v
标签: python python-3.x csv logging