我想解析一个机器日志文件,重新安排数据并将其写入.csv文件,我将导入谷歌电子表格。或者将数据直接写入电子表格 以下是日志的示例:
39 14 15 5 2016 39 14 15 5 2016 0
39 14 15 5 2016 40 14 15 5 2016 0.609
43 14 15 5 2016 44 14 15 5 2016 2.182
输出应如下所示:
start_date,start_time,end_time,meters
15/5/16,14:39,14:39,0
15/5/16,14:39,14:40,0.609
15/5/16,14:43,14:44,2.182
我编写了以下python代码:
file = open("c:\SteelUsage.bsu")
for line in file.readlines():
print(line) #just for verification
line=line.strip()
position=[]
numbers=line.split()
for number in numbers:
position.append(number)
print(number)#just for verification
这个想法是将每行中的每个数字保存到一个列表中,然后我可以根据它们的位置以正确的顺序重写这些数字。
例如:在第1行中,字符串“39”将具有位置0,“14”pstion 1等。
但似乎我编写的代码将每个数字存储为新列表,因为当我将print(number)
更改为print(number[0])
时,代码会打印每个数字的第一个数字,而不是打印第一个数字。 (39)
我哪里出错?
谢谢
答案 0 :(得分:0)
做这样的事情。将out
写入csv
文件。
with open('c:\SteelUsage.bsu','r') as reader:
lines = reader.readlines()
for line in lines:
inp = [i for i in line.strip().split()]
out = '%s/%s/%s,%s:%s,%s:%s,%s' % (inp[2],inp[3],inp[4],inp[1],inp[0],inp[6],inp[5],inp[10])
print out