python实现代码统计器
本文实例为大家分享了python中的代码行数统计,供大家参考,具体内容如下
思路:统计文件中代码的总行数减去空行单行注释以及多行注释
功能:
1.获取文件内容的总行数
2.排除空行单行注释多行注释
defcode_statistics(path):
##打开这个文件
withopen(path,'r',encoding='utf-8')asopenFile:
#按列读取
fileline=openFile.readlines()
#给非代码行一个变量
i=0
#整个文件里面内容的总行数
number_line=len(fileline)
#给多行注释一个状态
note=False
#遍历文件内容
forlineinfileline:
#空行
ifline=='\n':
i+=1
#单行注释
elifre.findall('[#]',line):
i+=1
#多行注释开头
elifre.findall("\'\'\'",line)andnote==False:
i+=1
note=True
#多行注释结尾
elifre.findall("\'\'\'",line)andnote==True:
i+=1
note=False
#多行注释内部注释
elifnote:
i+=1
num_code_line=number_line-i
print(num_code_line)
如果统计文件夹中的python文件的代码行数,首先就是要遍历文件目录,筛选出以.py结尾的文件,再去统计py文件里面的代码行数
defget_all_fire(path):
#得到当前目录下的所有文件
file_list=os.listdir(path)
py_file_abs=[]
#遍历所有文件
forfile_nameinfile_list:
#获取文件及文件夹的绝对路径
file_abs=os.path.join(path,file_name)
ifos.path.isfile(file_abs)andfile_name.endswith('.py'):#判断当前文件路径是否是文件和.py文件
py_file_abs.append(file_abs)
#判断当前文件路径是不是文件夹
elifos.path.isdir(file_abs):
py_file_abs+=get_all_fire(file_abs)
returnpy_file_abs
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。