#!/usr/bin/env python2
# -*- coding:utf-8 -*-
import re,glob
import os,sys
import ipdb
import shutil
fn_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 False
def 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_bak
def getFiles(path):
answer = []
endPaths = glob.glob(path + "*.uvproj")
answer += endPaths
#if len(glob.glob(path + "*ear/")) > 0:
# answer += getFiles(path + "*ear/")
return answer
def 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)
mdk中在文件中加入工程标识
最新推荐文章于 2024-03-25 20:52:07 发布