#!/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. poj 1430 Binary Stirling Number 求斯特林数奇偶性 数形结合| 斯特林数奇偶性与组合数的关系+lucas定理 好题

    题目大意 求子集斯特林数\(\left\{\begin{matrix}n\\m\end{matrix}\right\}\%2\) 方法1 数形结合 推荐一篇超棒的博客by Sdchr 就是根据斯特林的 ...

  2. javascript事件捕获机制,dom tree

    $(document,"a").on("click",function(){alert(2);return false;}); $("<a> ...

  3. [leetcode] permutations 排列

    写了两个,一个是直接的递归实现: class Solution { public: void swap(vector<int> &num,int left,int right) { ...

  4. 转 Python爬虫入门五之URLError异常处理

    静觅 » Python爬虫入门五之URLError异常处理 1.URLError 首先解释下URLError可能产生的原因: 网络无连接,即本机无法上网 连接不到特定的服务器 服务器不存在 在代码中, ...

  5. (转):从内核代码聊聊pipe的实现

    来源: http://luodw.cc/2016/07/09/pipeof/ 用linux也有两年多了,从命令,系统调用,到内核原理一路学过来,我发现我是深深喜欢上这个系统:使用起来就是一个字&quo ...

  6. ajax 分页(jquery分页插件pagination) 小例3

    <#macro ajaxPaginte url > <script type="text/javascript"> var PageSize = 10;// ...

  7. Yii CDbCriteria的常用方法总结

    查看代码   打印 01 $criteria=new CDbCriteria; 02 $criteria->addCondition("id=1");//查询条件,即wher ...

  8. 2016-2017 ACM-ICPC Southeastern European Regional Programming Contest (SEERC 2016)

    题目链接  Codefores_Gym_101164 Solved  6/11 Penalty Problem A Problem B Problem C Problem D Problem E Pr ...

  9. Tyvj——P1864 [Poetize I]守卫者的挑战

    来源:http://www.tyvj.cn/p/1864 描述 打开了黑魔法师Vani的大门,队员们在迷宫般的路上漫无目的地搜寻着关押applepi的监狱的所在地.突然,眼前一道亮光闪过.“我,Niz ...

  10. BZOJ题目(持续更新)

    bzoj1009:kmp想法+递推+矩阵快速幂.很好的想法,考虑用长串去kmp匹配短串,dp[i][j]表示匹配指针分别指在i.j位置时候,前i位母字符串一共有多少种可能性,那么dp[i][j]=Σd ...