将下列代码保存至py文件,然后命令行方式在console执行即可。
配置说明:
ROOT_PATH配置source目录,会自动递归统计所有文件代码行数总和。
INCLUDE_EMPTY_LINE:True时则将空行列入统计,否则空行不予统计。
#代码行数统计,可以递归目录
#2018/08/30
#python 2.7
import os
#########################Settings##################################
ROOT_PATH="D:\\SVN\\Src\\ngnix"
INCLUDE_EMPTY_LINE=False
###################################################################
def StatCodeLine(file_path,include_empty_line,code_line_cnt):
count=code_line_cnt
if os.path.isdir(file_path) :
files=os.listdir(file_path)
for file in files:
tmp_path=os.path.join(file_path,file)
#print tmp_path
if not os.path.isdir(tmp_path):
count=count+StatFileLine(tmp_path,include_empty_line)
else:
count=StatCodeLine(tmp_path,include_empty_line,count)
else:
count=count+StatFileLine(file_path,include_empty_line)
return count
def StatFileLine(file_name,include_empty_line):
count=0
f=open(file_name,'r')
while True:
line=f.readline()
if not line:
break
else:
if True!=include_empty_line :
if ""==line.strip() :
continue
count=count+1
f.close()
return count
if __name__ == "__main__":
StatCount=StatCodeLine(ROOT_PATH,INCLUDE_EMPTY_LINE,0)
print "Total code line count : " + str(StatCount)