最近在学习Python,之前也练习过,但时间一长有些东西还是有一点生疏,如果仅仅停留在看的级别上,那么对一门语言的学习也仅仅停留在了解的基础上。
今天闲着无聊,便动手写了一个计算Java代码有效行数的这样一个DEMO,里面用到了正则表达式,这个东西w 我现在用起来还是比较吃力的,纵观整个代码不过100行,但确实用了我今天一天的时间。
这个DEMO,不计算空行、单行注释、多行注释,只计算有效代码(其实后面应该把import以及花括号独在一行的代码也不计算在内,但目前没有处理)
代码很短,有些关键地方也进行了注释,其他的就不在赘述。
#coding=UTF-8 import sys,os,os.path import re count=0 filters=['java'] def input(): global destDir destDir = raw_input("input dest dir:") destDir = destDir.strip() if destDir=="": destDir=os.curdir def listFile(destDir): ''' 列出所给目录的文件,如果是文件,计算,如果是文档继续调用listFile ''' global count if os.path.isdir(destDir)!=True: #过滤 if filter(destDir) == False: return if os.path.isfile(destDir): count=count+countRows(destDir) return files = os.listdir(destDir) for i in range(len(files)): listFile(os.path.join(destDir,files[i])) def countRows(filePath): ''' 计算行数 ''' fscok=open(filePath) nullLineP=re.compile(r'^(\t{1,}|\n{1,}|\s{1,})$') singleNoteP=re.compile(r'^(\t{0,}|\s{0,})//') multiNoteStartP=re.compile(r'^(\t{0,}|\s{0,})(/\*)') multiNoteEndP=re.compile(r'(\*/)(\t{0,}|\s{0,}|\n{0,})$') c=0 isMulitNoteStart=False for line in fscok: #匹配空白行 if nullLineP.match(line)!=None : continue #匹配单行注释 if singleNoteP.match(line)!=None: continue #匹配多行注释开始 if multiNoteStartP.match(line)!=None: isMulitNoteStart=True #匹配多行注释结束 #如果有开始的注释,但是没有结束的,则continue if isMulitNoteStart==True and multiNoteEndP.search(line)==None: continue if multiNoteEndP.search(line) !=None: isMulitNoteStart=False continue c+=1 return c def filter(filePath): ''' 过滤文件 ''' global filters exName=filePath.split('.')[-1] if exName in filters : return True return False if __name__=="__main__": input() listFile(destDir) print "%d row" % count
相关推荐
同过java工具类计算一个项目有多少行代码
NULL 博文链接:https://ily.iteye.com/blog/1399319
获取整个项目代码行数。这是个java类,是复制别人的,保存下来,以方便以后用。
有效代码行数计算器,可以计算包括jar包中的所有有效java代码。
用java实现的计算一个代码行数的软件,还没有完善,期待下个版本
可以计算jsp,c,js,java等主流文件代码行数,计算准确,容易使用
获取java项目的后台代码行数,可以计算代码数量。
用于计算源代码行数工作,支持java、js、html、C、C#啊等等等等等等等等源码的函数计算,以及工作量计算等。
析出程序中代码行、注释行和空白行的行数。程序会自动根 据你选择的文件类型选择相应的统计方式,并将所有文件的 分析结果进行汇总,便于方便直观的对软件项目的代码量进 行全面的评估。本软件是绿色软件,不需要...
测试Java源代码中的有效代码行数、空白行数、注释行数。
可以统计一个目录下的所有指定格式文件的代码行数,用于软件度量的实验.
[jave]强大的代码计数器(可计算各种代码行数导出代码)附源码
一个实现计算已写的代码的行数功能的程序。
支持各种类型源码行数统计,同时包括测试用例缺陷设定,支持目录、扩展名、更新日期过滤,简单易用,功能强大,强烈推荐!
此程序用Java编写,用于统计编写过的代码总行数。
HTML、JSP、ASP、PHP内部包含的语言(JavaScript,StyleSheet)也可以分别计算。甚至JSP内部的Java代码,ASP内部的VB代码都可以分别统计。计算速度相当快。
选择源码路径,选择语言可直接计算,注释,代码行数
代码统计,能够精准计算有效代码行数。适用于java
Code Line Counter是一款计算代码行数的小工具。支持C, C++, C#, Java, Delphi/Pascal, COBOL, VB, PHP, ASP, XML, Perl, Fortran, SQL Script等语言。