Python实现代码统计(代码+注释+空
短信预约 -IT技能 免费直播动态提醒
# -*- coding: utf-8 -*-
"""
Created on Thu Apr 17 17:15:40 2014
@author: author
"""
import os;
path_head = '代码路径头部'
path_list = '代码绝对路径'
fileClasses = ['java'] #需要统计的文件类型
totalLines = 0
commentAll = 0
normalAll = 0
whiteAll = 0
for root,dirs,files in os.walk(path_head + path_list):
#处理路径中的 '/'
dirLen = len(root)
lastChar = root[dirLen-1:dirLen]
if lastChar =='/' :
root = root[0:dirLen-1]
for afile in files:
fileDir = root+'/'+ afile
#过滤文件类型
strs = afile.split('.')
fileClass = strs[len(strs)-1]
if fileClass not in fileClasses :
continue
with open(fileDir) as file:
commentLines = 0
whiteLines = 0
normal = 0
comment = False
lines = file.readlines()
for i in lines:
i = i.strip()
#空行
if(i==''):
whiteLines=whiteLines+1
#注释
elif(i.startswith('')):
commentLines=commentLines+1
#注释 ')):
commentLines=commentLines+1
comment=True
#注释 中间 和 */ 结尾
elif(True==comment):
commentLines=commentLines+1
if(i.endswith('*/')):
comment=False
#注释 //
elif(i.startswith('//')):
commentLines=commentLines+1
#代码
else:
normal=normal+1
#单文件统计结果
print ('%s 代码行数:%d 空行数:%d 注释行数:%d'%(fileDir[len(path_head):], normal, whiteLines, commentLines))
commentAll+= commentLines
normalAll += normal
whiteAll += whiteLines
#统计结果
print ('总行数:%d' %(commentAll + normalAll + whiteAll))
print ('总代码行数:%d' %(normalAll))
print ('总注释行数:%d' %(commentAll))
print ('总空行数:%d' %(whiteAll))
参考网上的代码修改而成,没有什么技术含量。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341