【发布时间】:2018-01-16 22:52:14
【问题描述】:
我正在尝试使用 python (mainly this example) 将日志文件转换为 csv
import csv
with open('/home/user/Downloads/my.log') as file:
lines = file.read().splitlines()
lines = [lines[x:x+2] for x in range(0, len(lines), 3)]
with open('test.csv', 'w+') as csvfile:
w = csv.writer(csvfile)
w.writerows(lines)
print "done"
我的原始日志文件如下所示:
2017-08-09 -> 11:30:01
Temp=29.0* Humidity=30.0%
2017-08-09 -> 11:40:01
Temp=29.0* Humidity=33.0%
从上面的示例代码,我可以把它转换成这种格式
2017-08-08 -> 08:50:01,Temp=33.0* Humidity=38.0%
2017-08-08 -> 09:00:01,Temp=37.0* Humidity=40.0%
但我需要我的最终 csv 看起来像这样
2017-08-08,08:50:01,33.0*,38.0%,
2017-08-08,09:00:01,37.0*,40.0%
我用过lines = lines.replace("->",","),我得到了
AttributeError: 'list' 对象没有属性 'replace'
据我了解,python 不能替换它在内存中处理的文本文件。那我能做什么?我可以用什么方法来净化最终的文本?
我的python知识不高级,还在学习中。所以如果有错误或遗漏的步骤,请纠正我。
提前致谢
【问题讨论】:
-
尝试:lines = [i.replace("->",",") for i in lines]