python学习-----添加IPS到数据文件

目的:在log文件中添加了时间戳,在得到的.csv文件中有时间戳和IPS,然后根据log里的时间戳得到相应的IPS添加到log中。

log里的格式:TimeStamp |2015-10-29 17:56:42|2015-10-29 17:56:57|2015-10-29 17:57:12|

.csv的格式:

IPC | IPS(Million) | CPU_Util(%) | TimeStamp
0.00|0.0|0.10|2015-10-29 16:52:37
0.00|0.0|0.02|2015-10-29 16:52:38
0.00|0.0|0.11|2015-10-29 16:52:39


作为一个python小白,一切从google和百度开始....

思路:逐条读取log文件里的时间戳,每个时间戳再去遍历.cvs找到相同(或相近)的字段的IPS

step1:文件的打开; 

f= open("filename")        //不带参数默认是r,读文件 

f= open("filename",'w')   //写文件

f= open("filename".'a')   //追加模式,打开后定位到文件尾

以上记得要关闭文件f.close()


step2:获取log里的时间

for line in flog:      #按行读取
   datas = line.split('|')     #按'|'分割
   if datas[0] == "TimeStamp " :       

step3:找到对应的.csv的时间

这里有几个小问题:1)可能没有匹配的时间,我修改为找到log里大于等于data[i]时间的第一条时间

2)所以要把字符串匹配改为时间比较,调用time库函数date2=time.strptime(datas[i],"%Y-%m-%d %H:%M:%S"),然后就可以比较啦

3)在log文件里查找的时候只执行一次,原因:文件指针需要重新修改,添加f.seek(0,0)  f.seek(偏移量,[起始位置])

step4:把相应的IPS,放到字符串或者临时文件里,最后加到log里面就好了


完整代码:


import time
flog = open("data-30-02-57-56.log")
fips = open("ipc_ips_cpu_ts.csv")
ftmp = open("ftmp",'w')
ftmp.write("IPS | ")
str = "IPS | "
for line in flog:
   datas = line.split('|')
   if datas[0] == "TimeStamp " :
      break;
n=1
for i in range(1,len(datas)-1):
   print datas[i]
   fips.seek(0,0)
   for line2 in fips.readlines()[n:len(fips.readlines())-1]:
      data2=line2.split('|')
      n=n+1
      date1=time.strptime(data2[3][0:19],"%Y-%m-%d %H:%M:%S")
      date2=time.strptime(datas[i],"%Y-%m-%d %H:%M:%S")
      if date1 >= date2:
         print data2[1]
         str = str + data2[1]+" | "
         ftmp.write(data2[1]+" | ")
         break
#print str
flog.close()
fips.close()
ftmp.close()

flog = open("data-30-02-57-56.log",'a')
ftmp = open("ftmp")
for line in ftmp:
        flog.write(line)
flog.close()
ftmp.close()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值