Python之自动生成代码继承关系
2015-12-14 22:47
751 查看
## 自动化生成代码继承关系
import os,sys,re import shutil,string #[OK] gCount = 0 def getList(dirname,pFunc): global gCount try: ls=os.listdir(dirname) except: print dirname,'is access deny' else: for file in ls: temp = os.path.join(dirname,file) if(os.path.isdir(temp)): getList(temp,pFunc) else: gCount = gCount + 1 if re.search(r'.h$',file): pFunc(dirname,file) #[OK] def loadSiteList(file): file = open(file,"r") sites = file.readlines() return sites #[OK] def removeBR(site): result = re.search(r'\n',site) if result: return site.replace('\n','') return site #[OK] def process(dirname,file): global gCount #[1] #print '[%d]->%s' % (gCount,file) #[2] path = os.path.join(dirname,file) list = loadSiteList(path) #[3] for str in list: parseString(str,path) #[OK] def getRenderObject(str): res = re.search('[^<]?\s*class\s+(Render\w+)\s*[^\;\w,]',str) if res: return res.group(1) return None #[OK] def getParent(str): res = re.search(':\s*public\s+(\w+)\s*',str) if res: return res.group(1) return None #[Test] objList = [] objInfo = {} urlList = {} def parseString(str,path): global objList,objInfo str = removeBR(str) obj = getRenderObject(str) if obj != None: if obj in objList: #print "%s has exist in list" % (obj) return else: objList.append(obj) urlList[obj] = path objInfo[obj] = getParent(str) #print '%s->%s' % (obj,objInfo[obj]) def link(dest,src): return '<a href="%s" target="_blank">%s</a>' % (dest,src) def HeadLink(dest,src): return '<a href="%s" style="color:red;font-weight:bold;" target="_blank">%s</a>' % (dest,src) def link_form(dest): return '-->%s' % (dest) def getPath(obj): global objList,objInfo,urlList if obj in objList: return urlList[obj] else: return "#" #[OK] def showResult(): global objList,objInfo,urlList for obj in objList: tmp = obj print HeadLink(getPath(tmp),tmp), while tmp: parent = objInfo[tmp] print link_form( link(getPath(parent) ,parent) ) if parent in objList: tmp = parent else: tmp = None print '<hr>' getList(os.path.join(os.getcwd(),"src"),process) #print "++++++++++++++++++++++++++++++++++++++++++++++" print '<div style="width:1700;border:1px red solid;">' showResult() print '</div>'
相关文章推荐
- Python 多线程
- Python字符串格式符号含义
- Python之路【第一篇】:Python简介和入门
- python 实现逆波兰式
- 读取中文目录(python)
- 【python游戏编程之旅】第九篇---嗷大喵快跑小游戏开发实例
- python学习笔记-Day08--(异常处理)
- Python 索引迭代
- Python 列表推导、迭代器与生成器
- python模块介绍-locustio:性能测试工具locustio
- Python: range()与xrange()区别
- LeetCode Longest Palindromic Substring
- python爬取返利网
- python学习笔记-Day08--(面向对象)--补充
- Python元组的简单介绍
- 七步精通Python机器学习
- scrapy下调试单个函数的方法
- Python中strip()函数
- 《利用python进行数据分析》读书笔记--第九章 数据聚合与分组运算(一)
- 《利用python进行数据分析》读书笔记--第七章 数据规整化:清理、转换、合并、重塑(三)