#!/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. 3D标签

    动态实现3D标签, 主要代码: // // XLMatrix.h // XLSphereView // // Created by 史晶晶 on 16/4/4. // Copyright © 2016 ...

  2. 【HDOJ5971】Wrestling Match(二分图,并查集)

    题意:有n个人,m场比赛,x个人为good player,y个人为bad player, 每场比赛两个人分分别为good和bad,问good和bad是否会冲突 1 ≤ N≤ 1000,1 ≤M ≤ 1 ...

  3. float 常见用法与问题--摘抄

    float 属性绝对是众多切图仔用的最多的 CSS 属性之一,它的用法很简单,常用值就 left.right.none 三个,但是它的特性你真的弄懂了吗? 我会在这里介绍我对 float 的认识与使用 ...

  4. 标准C程序设计七---103

    Linux应用             编程深入            语言编程 标准C程序设计七---经典C11程序设计    以下内容为阅读:    <标准C程序设计>(第7版) 作者 ...

  5. java中过滤查询文件

    需求,过滤出C盘demo目录下 所有以.java的文件不区分大小写 通过实现FileFilter接口 定义过滤规则,然后将这个实现类对象传给ListFiles方法作为参数即可. 使用递归方法实现 pa ...

  6. LeetCode OJ--Gray Code **

    http://oj.leetcode.com/problems/gray-code/ 求格雷码的表示,主要应用递归. 递归生成码表 这种方法基于格雷码是反射码的事实,利用递归的如下规则来构造: 1位格 ...

  7. js-异步请求音频完成后页面显示

    var ajax = new XMLHttpRequest(); ajax.open("get", "http://gzmylike.wedei.com/zt/gzyan ...

  8. 小程序-TabBar点击切换

    这种页面的布局会经常用到,所以在此做个笔记,之后遇到可以节省很多时间 WXML: <view class='listTitle_tab'>      <view class='scr ...

  9. 第一章 “我要点爆”微信小程序云开发之项目建立与我的页面功能实现

    第一章 “我要点爆”微信小程序云开发之项目建立与我的页面功能实现 开发环境搭建 使用自己的AppID新建小程序项目,后端服务选择小程序·云开发,点击新建,完成项目新建. 新建成功后跳转到开发者工具界面 ...

  10. HDU 1011 Starship Troopers (树dp)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1011 题意: 题目大意是有n个房间组成一棵树,你有m个士兵,从1号房间开始让士兵向相邻的房间出发,每个 ...