mdk中在文件中加入工程标识
来源:互联网 发布:淘宝联盟如何购买省钱 编辑:程序博客网 时间:2024/05/23 19:09
#!/usr/bin/env python2# -*- coding:utf-8 -*-import re,globimport os,sysimport ipdbimport shutilfn_a = "Main.c"patt1="proj_name"patt2=r'(\").*(\")'p1 = re.compile(patt1)flist=["Main.c", "app.c", "APP.c", "main.c"]def check_pattern(fn): file = open(fn).read() pos = 0 match_pos = 0 for line in file.splitlines(): match = re.search(patt1, line) if match: match_pos = pos + match.start() #exact pos print match_pos print file.count('\n', 0, match_pos) #lineno return True pos = pos + len(line) return Falsedef scan_files(flist): for fn in flist: if(os.path.exists(fn)): if(check_pattern(fn)): return fn return ""def create_backup(fn,subs): global ds1,ds2 f1 = open(fn).readlines() subs_need = 1 for line in f1: if(p1.search(line)): s1=repr(subs) s2 = s1[1:len(s1)-2] if(re.search(re.escape(s2),line)): subs_need = 0 if(subs_need == 0): print "substitue is not need", return "" f_bak = fn+".bak" print f_bak shutil.copyfile(fn,f_bak) return f_bakdef getFiles(path): answer = [] endPaths = glob.glob(path + "*.uvproj") answer += endPaths #if len(glob.glob(path + "*ear/")) > 0: # answer += getFiles(path + "*ear/") return answerdef get_string(fn,subs): def exec_subs(matched): #ipdb.set_trace() print matched s1 = matched.groups()[0] s2 = matched.groups()[1] s3 = repr(subs) return s1+s3[1:len(s3)-2]+s2 f1 = open(fn).readlines() i=0; for line in f1: if(p1.search(line)): print line, line = re.sub(patt2,exec_subs,line) print line f1[i] = line i = i+1 f2 = open(fn_a, 'w') for line in f1: f2.write(line) f2.close()if __name__ == "__main__": print scan_files(flist) #sys.exit() fns = getFiles("./") if(len(fns)): pv = (os.path.realpath(fns[0])).replace(r'\\', r'\\\\'); print "----",repr(pv) f_bak = create_backup(fn_a,pv) if(f_bak != ""): get_string(f_bak,pv)
阅读全文
0 0
- mdk中在文件中加入工程标识
- 在已有的Visual Studio工程中加入CU文件
- 在工程中加入log4j日志
- 在工程中加入第三方库
- 在工程中加入springmvc框架
- 在Web工程中加入favicon.ico
- 在Android工程中加入AIDL文件时,gen目录生成的文件报错-问题解决
- 在非ARC工程中加入ARC代码文件的方法
- "_inflateEnd", referenced from "_inflateInit_"等。这时需要在工程中加入libz.dlib 文件
- 在Realview MDK 中如何生成*.bin 格式的文件
- 在MDK中如何生成*.bin格式的文件
- 如何在MDK中生成 *.bin 格式的文件
- 在MDK中如何生成*.bin格式的文件
- 在MDK中如何生成*.bin格式的文件
- 在MDK中如何生成*.bin格式的文件
- 如何在MDK中编译生成bin文件
- STM32 MDK工程中使用printf
- 在文件中加入编译时间
- [POJ](2139)Six Degrees of Cowvin Bacon ---- 最短路径算法(Floyd)
- 切换数据
- 周末训练笔记+哈尔滨理工大学第七届程序设计竞赛AB
- redis学习三,Redis主从复制和哨兵模式
- bzoj2424 [HAOI2010]订货(费用流)
- mdk中在文件中加入工程标识
- python基础(02)——数据类型转化以及运算
- [leetcode] 47. Permutations II
- C# 字典(dictionary)练习,日期翻译
- IntelliJ IDEA 配合Maven使用Junit进行代码测试
- HTTP & HTTPS, Session & Cookie 知识点总结
- Java多线程控制
- JDBC笔记(二)SQL攻击
- DID YOU ?