检测c++代码中类是否使用过.
这是很久以前一个以前的同事让我帮写的,用python写的,用正则判断,很简单,各位看看就行了#coding=utf-8
import os,re
file_list = {}
regex = re.compile("class\s+(.*?)\s*:")#匹配类名的正则表达式
def get_file(path = os.getcwd()):
list = os.listdir(path)
for l in list:
if os.path.isdir(path + '\\' + l) and l != '.':
get_file(path + '\\' + l)
elif l != '.' and os.path.splitext(l)[-1] in ['.cpp','.hpp','.c','.h']:
with open(path + '\\' + l) as f:
txt = f.readlines()
if len(txt) != 0:
file_list = ''.join(txt)
print 'write ' + path + '\\' + l + ' to Memory!'
def judge_use():
for key in file_list.keys(): #遍历文件看
for cls in regex.findall(file_list): #查找文件中存在的类名
is_use = 0
for key2 in file_list.keys(): #查找此类是否出现在其它文件中
if key2 == key:
continue
if cls in file_list: #出现过一次就不在寻找,查找其他类名
is_use = 1
break;
if is_use == 0: #一次没出现旧打印出文件名+类名
print key + ' calss ' + cls + ' : is not use in other files'
if __name__ == '__main__':
get_file()
judge_use() 可以,原理很清晰哈哈,看到第一个正则就想到实现方法~~
时刻关注着 非常好{:1_921:}
页:
[1]