#!/usr/bin/python
#-*- coding:utf-8 –*- import os
import sys
import re
import shutil
import xlrd
import xlwt
from xlutils.copy import copy '''
提取相关RELEASE信息,追加“SW Release Note.xls”
运行命令 ./gen_release.py "Modified reason"
''' def fun_genRelease():
list = []
curLine = ""
book = xlrd.open_workbook(r'./mergedir/SW Release Note.xls',formatting_info=True)
sheet = book.sheet_by_index(0) newBook = copy(book)
newSheet = newBook.get_sheet(0)
list.append(sheet.nrows-1)
with open("./drivers/include/project.h", "r") as mFile:
proData = mFile.read() with open("./aps/include/common_patch.h","r") as comFile:
comData = comFile.read()
modeId = re.search(".*DEFAULT_MODE_ID\s+(\d+).*",comData).group(1) pat = re.compile(".*?(\d+).*\{.*\"((\d+)_.*)\",\s+&\w+\[\d+\],\s+/\*(.*?)\*/\s+&\w+\[\d+\],\s+/\*(.*)\*/.*") list.append(re.search(".*CONFIG_APP_FOLDER_NAME.*\"(.*)\"", proData).group(1))
board = re.search(".*CONFIG_MODEL_BOARD_NAME\s+\"(\w+)\"",proData).group(1) with open("./aps/customer/radisson/%s/adaptable/model_data.c" %board,"r") as modeFile:
modeList = modeFile.readlines() for line in modeList:
if pat.search(line) and pat.search(line).group(1) == modeId:
curLine = line
break list.append(pat.search(curLine).group(2))
list.append(pat.search(curLine).group(3))
list.append(pat.search(curLine).group(4))
list.append(pat.search(curLine).group(5))
list.append("LL" if "LL" in pat.search(curLine).group(2) else "NON LL")
list.append("" if len(sys.argv) ==1 else sys.argv[1]) with open("./aps/include/timestamp.h","r") as verFile:
verData = verFile.read() list.append("%s%s" %(board,re.search(".*TIME_VERSION\s+\"(\w+)\".*",verData).group(1)))
list.append("")
list.append("")
list.append("bjornLee") #写EXCEL
#for col in range(sheet.ncols):
col = 0
for cell in list:
newSheet.write(sheet.nrows,col,cell)
col = col+1
#newSheet.write(sheet.nrows,col,"test")
newBook.save(r'./mergedir/SW Release Note.xls')
print "\n",list,"\n" def main():
fun_genRelease() if __name__ == '__main__':
main()

Python VIL Realse的更多相关文章

  1. Python VIL Service Bin

    #!/usr/bin/python #coding:UTF-8 import sys import re import getopt import md5 import os import subpr ...

  2. python 学习源码练习(1)

    #编译方式,python3 文件名 #!/usr/bin/python3#print('hello world') mystring = 'hello world'print (mystring) # ...

  3. python 单变量线性回归

      单变量线性回归(Linear Regression with One Variable)¶ In [54]: #初始化工作 import random import numpy as np imp ...

  4. python+Django创建第一个项目

    1.首先搭建好环境 1.1 安装pyhton,Linux系统中,python是系统自带的所以就不用安装 1.2 安装Django框架 使用pip安装: pip install django 1.3 检 ...

  5. Python中的多进程与多线程(一)

    一.背景 最近在Azkaban的测试工作中,需要在测试环境下模拟线上的调度场景进行稳定性测试.故而重操python旧业,通过python编写脚本来构造类似线上的调度场景.在脚本编写过程中,碰到这样一个 ...

  6. Python高手之路【六】python基础之字符串格式化

    Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-3101] This ...

  7. Python 小而美的函数

    python提供了一些有趣且实用的函数,如any all zip,这些函数能够大幅简化我们得代码,可以更优雅的处理可迭代的对象,同时使用的时候也得注意一些情况   any any(iterable) ...

  8. JavaScript之父Brendan Eich,Clojure 创建者Rich Hickey,Python创建者Van Rossum等编程大牛对程序员的职业建议

    软件开发是现时很火的职业.据美国劳动局发布的一项统计数据显示,从2014年至2024年,美国就业市场对开发人员的需求量将增长17%,而这个增长率比起所有职业的平均需求量高出了7%.很多人年轻人会选择编 ...

  9. 可爱的豆子——使用Beans思想让Python代码更易维护

    title: 可爱的豆子--使用Beans思想让Python代码更易维护 toc: false comments: true date: 2016-06-19 21:43:33 tags: [Pyth ...

随机推荐

  1. 关于LIS和LCS问题的o(nlogn)解法

    o(n^2)解法就不赘述了,直接解释o(nlogn)解法 LIS最长递增子序列: 先明确一个结论:在长度最大为len的递增序列里若末尾元素越小,该递增序列越容易和后面的子序列构造出一个更长的递增子序列 ...

  2. 接口测试实例(Road)

    以getObjectByCode接口为例,用jmeter2.13来进行接口测试. 测试前准备: 测试工具及版本:jmeter 2.13 r1665067(须包含__MD5函数) 示例接口:8.1根据单 ...

  3. Python的hasattr() getattr() setattr() 函数使用方法详解--转载

    hasattr(object, name)判断一个对象里面是否有name属性或者name方法,返回BOOL值,有name特性返回True, 否则返回False.需要注意的是name要用括号括起来 1 ...

  4. npm 安装私有 git 包

    npm 安装私有 git 包 npm 对于前端开发来说是一种必备的工具,对于开源项目来说,完全没有任何问题,安装包的依赖直接依赖于 Npm 即可. 对于公司内网的一些项目就不是太方便了,因为我们通常会 ...

  5. subllime的插件使用

    1.emmet快速使用的方法. html:xt 然后按下tab快速的生成一个html文档. 生成10个div----- div*10 div->ul->li->a->img 写 ...

  6. 最短路径求解(Dijkstra)

    Dijkstra算法分析 题目分析参照<数据结构>(严蔚敏)7-6节 最短路径问题描述 参照日常生活中的公交查询系统.我们有选项: 少换乘/最少站数 价格最少/时间最短.... (ps:下 ...

  7. linux yum安装lsof命令

    [root@ITC-MCC ~]# yum install lsof[USM] permission denied^C[root@ITC-MCC ~]# [root@ITC-MCC ~]# [root ...

  8. 多目标跟踪方法 NOMT 学习与总结

    多目标跟踪方法 NOMT 学习与总结 ALFD NOMT MTT 读 'W. Choi, Near-Online Multi-target Tracking with Aggregated Local ...

  9. ASP.NET Page 指令

    一些重要的Page指令 虽然Page公开了很多属性,让我们可以在运行时调整它的状态与行为,但是,还有些重要的参数却是以“指令”方式提供的,需要在设计时就指定.下面是我整理的一些我认为 比较重要并且经常 ...

  10. Vivado_MicroBlaze_问题及解决方法_汇总(不定时更新)

    Vivado_MicroBlaze_问题及解决方法_汇总(不定时更新) 标签: Vivado 2015-07-03 14:35 4453人阅读 评论(0) 收藏 举报  分类: 硬件(14)  版权声 ...