#!/usr/bin/python2.6

import re,datetime

file_name='sim.log'

file=open(file_name,'r')

acnum=[];time_res=[];lnum=0

def trans_time(time):

    t1=datetime.datetime.strptime(time,'%y/%m/%d %H:%M:%S')

    return t1

for (num,line) in enumerate(file):





    if(re.search(r'^(.*)BEGINNING SIM PROCEDURE(.*)$',line)):

        m=re.search(r'^(.*)BEGINNING SIM PROCEDURE(.*)$',line)

        print 'Step %d:'%(lnum), m.group(0);lnum+=1

        acnum.append(trans_time(line[0:17]))

    elif(re.search(r'^(.*)CP_W(.*)$', line)):

        m=re.search(r'^(.*)CP_W(.*)$', line)

        print 'Step %d:'%(lnum), m.group(0);lnum+=1

        acnum.append(trans_time(line[0:17]))

    elif(re.search(r"^(.*)VERIFY_S(.*)$", line)):

        m=re.search(r"^(.*)VERIFY_S(.*)$", line)

        print 'Step %d:'%(lnum), m.group(0);lnum+=1

        acnum.append(trans_time(line[0:17]))

    elif(re.search(r"^(.*)--action commit(.*)$",line)):

        m=re.search(r"^(.*)--action commit(.*)$",line)

        print 'Step %d:'%(lnum), m.group(0);lnum+=1

        acnum.append(trans_time(line[0:17]))

    elif(re.search(r"^(.*)COMPLETED SIM PROCEDURE(.*)$",line)):

        m=re.search(r"^(.*)COMPLETED SIM PROCEDURE(.*)$",line)

        print 'Step %d:'%(lnum), m.group(0);lnum+=1

        acnum.append(trans_time(line[0:17]))

    elif(re.search(r"^(.*)RESUMING SIM PROCEDURE(.*)$",line)):

        m=re.search(r"^(.*)RESUMING SIM PROCEDURE(.*)$",line)

        print 'Step %d:'%(lnum), m.group(0);lnum+=1

        acnum.append(trans_time(line[0:17]))





file.close()

if(re.search(r"^(.*)backout(.*)$",file_name)):

    time_res.append((acnum[2]-acnum[0]).seconds/60)

    time_res.append((acnum[4]-acnum[3]).seconds/60)

    time_res.append((acnum[6]-acnum[5]).seconds/60)

    time_res.append(((acnum[8]-acnum[7])+(acnum[10]-acnum[9])+(acnum[13]-acnum[11])).seconds/60)

    print "\n3). sim --proc update --action apply to \"CP_WARNING\" %s mins" %(time_res[0])

    print "4). sim --proc update --action resume to  \"VERIFY_SOFTWARE\" %s mins"%(time_res[1])

    print "5). sim --proc update --action resume to  \"COMMIT\" %s mins"%(time_res[2])

    print "8). Backout from RXX to RXX  %s mins"%(time_res[3])

elif(re.search(r"^(.*)rollback(.*)$",file_name)):

    time_res.append((acnum[2]-acnum[0]).seconds/60)

    time_res.append((acnum[4]-acnum[3]).seconds/60)

    time_res.append((acnum[6]-acnum[5]).seconds/60)

    time_res.append((acnum[8]-acnum[7]).seconds/60)

    time_res.append(((acnum[10]-acnum[9])+(acnum[12]-acnum[11])+(acnum[15]-acnum[13])).seconds/60)

    print "\n3). sim --proc update --action apply to \"CP_WARNING\" %s mins" %(time_res[0])

    print "4). sim --proc update --action resume to  \"VERIFY_SOFTWARE\" %s mins"%(time_res[1])

    print "5). sim --proc update --action resume to  \"COMMIT\" %s mins"%(time_res[2])

    print "6). sim --proc update --action commit to end of Patch %s mins"%(time_res[3])

    print "8). Rollback from RXX to RXX %s mins" %(time_res[4])

if __name__ == '__main__':

    pass

compute the su procedure time with python的更多相关文章

  1. Python Django开始

    1.创建工程 C:\procedure\projects>django-admin startproject mysite 2.同步数据库 C:\procedure\projects\mysit ...

  2. Conclusions about Deep Learning with Python

     Conclusions about Deep Learning with Python  Last night, I start to learn the python for deep learn ...

  3. python 面试题1

    1.大数据的文件读取 ① 利用生成器generator ②迭代器进行迭代遍历:for line in file 2.迭代器和生成器的区别 1)迭代器是一个更抽象的概念,任何对象,如果它的类有next方 ...

  4. 整理的最全 python常见面试题(基本必考)

    整理的最全 python常见面试题(基本必考) python 2018-05-17 作者 大蛇王 1.大数据的文件读取 ① 利用生成器generator ②迭代器进行迭代遍历:for line in ...

  5. python 面试题--你能做出多少?

    python3中__get__,getattr,__getattribute__的区别 什么是 GIL 详细博客 GIL = Global Intercept Lock 全局解释器锁,任意时刻在解释器 ...

  6. python常见面试题(mark)

    1.大数据的文件读取 ① 利用生成器generator ②迭代器进行迭代遍历:for line in file 2.迭代器和生成器的区别 1)迭代器是一个更抽象的概念,任何对象,如果它的类有next方 ...

  7. 运行python时提示:ImportError: No module named plyvel ,ImportError No module named irc 解决过程:

    (当前python版本:2.7) 1.在git下载electrum-server: cd / git clone https://github.com/spesmilo/electrum-server ...

  8. 整理的最全 python常见面试题

      整理的最全 python常见面试题(基本必考)① ②③④⑤⑥⑦⑧⑨⑩ 1.大数据的文件读取: ① 利用生成器generator: ②迭代器进行迭代遍历:for line in file; 2.迭代 ...

  9. python基础===通过菲波那契数列,理解函数

    def fib(n): # write Fibonacci series up to n """Print a Fibonacci series up to n.&quo ...

随机推荐

  1. zoj 2974 Just Pour the Water矩阵快速幂

    Just Pour the Water Time Limit: 2 Seconds      Memory Limit: 65536 KB Shirly is a very clever girl. ...

  2. Java实现一致性Hash算法

    Java代码实现了一致性Hash算法,并加入虚拟节点.,具体代码为: package com.baijob.commonTools;   import java.util.Collection; im ...

  3. 【CF1015A】Points in Segments(签到)

    题意:有一条上面有n个点的数轴,给定m次操作,每次覆盖(x[i],y[i]),求最后没有被覆盖过的点的数量与他们的编号 n,m<=100 思路: #include<cstdio> # ...

  4. 共享内存之——mmap内存映射

    共享内存允许两个或多个进程共享一给定的存储区,因为数据不需要来回复制,所以是最快的一种进程间通信机制.共享内存可以通过mmap()映射普通文件 (特殊情况下还可以采用匿名映射)机制实现,也可以通过sy ...

  5. iOS应用内跳转百度高德苹果地图

    移动开发经常用到基于位置的一些导航功能,但是对于对导航功能依赖性不强的的应用,我们直接采用应用外跳转地图APP即可. 但是应用间跳转,首先需要设置白名单, 在iOS 9 下涉及到平台客户端跳转,系统会 ...

  6. 【spring data jpa】使用spring data jpa时,关于service层一个方法中进行【删除】和【插入】两种操作在同一个事务内处理

    场景: 现在有这么一个情况,就是在service中提供的一个方法是先将符合条件的数据全部删除,然后再将新的条件全部插入数据库中 这个场景需要保证service中执行两步 1.删除 2.插入 这两步自然 ...

  7. 【Navicat preminm】64位的Navicat preminm注册

    百度云盘 技术-->Navicat preminm+破解

  8. 修改ViewPager调用setCurrentItem时,滑屏的速度 ,解决滑动之间切换动画难看

    在使用ViewPager的过程中,有需要直接跳转到某一个页面的情况,这个时候就需要用到ViewPager的setCurrentItem方法了,它的意思是跳转到ViewPager的指定页面,但在使用这个 ...

  9. 百科知识 ass文件如何打开

    直接拖入视频即可播放 鼠标右键 用记事本打开 也有一些软件支持比如POPSUB(也比较方便调整时间轴) 如果你是说如何加载字幕的话 用VOBSUB是最好的... ASS是视频的字幕,和视频放在同一文件 ...

  10. mysql大数据量下修改表结构的方法

    http://www.blogjava.net/anchor110/articles/361152.html