python统计指定目录内文件的代码行数
更新时间:2019年09月19日 09:22:18 作者:楼下丶小黑
这篇文章主要介绍了python统计指定目录内文件的代码行数
python统计指定目录内文件的代码行数,程序实现统计指定目录内各个python文件的代码总行数,注释行数,空行数,并算出所占百分比
这符合一些公司的小需求,实际代码量的统计工作
效果如图
代码如下:
#coding:utf-8 import os,re #代码所在目录 FILE_PATH = './' def analyze_code(codefilesource): ''' 打开一个py文件,统计其中的代码行数,包括空行和注释 返回含该文件总行数,注释行数,空行数的列表 :param codefilesource: :return: ''' total_line = 0 comment_line = 0 blank_line = 0 with open(codefilesource,encoding='gb18030',errors='ignore') as f: lines = f.readlines() total_line = len(lines) line_index = 0 #遍历每一行 while line_index < total_line: line = lines[line_index] #检查是否为注释 if line.startswith("#"): comment_line += 1 elif re.match("\s*'''",line) is not None: comment_line += 1 while re.match(".*'''$",line) is None: line = lines[line_index] comment_line += 1 line_index += 1 #检查是否为空行 elif line =='\n': blank_line += 1 line_index += 1 print("在%s中:"%codefilesource) print("代码行数:",total_line) print("注释行数:",comment_line,"占%0.2f%%"%(comment_line*100/total_line)) print("空行数:", blank_line, "占%0.2f%%"%(blank_line * 100 / total_line)) return [total_line,comment_line,blank_line] def run(FILE_PATH): os.chdir(FILE_PATH) #遍历py文件 total_lines = 0 total_comment_lines = 0 total_blank_lines = 0 for i in os.listdir(os.getcwd()): if os.path.splitext(i)[1] == '.py': line = analyze_code(i) total_lines,total_comment_lines,total_blank_lines=total_lines+line[0],total_comment_lines+line[1],total_blank_lines+line[2] print("总代码行数:",total_lines) print("总注释行数:",total_comment_lines,"占%0.2f%%"%(total_comment_lines*100/total_lines)) print("总空行数:", total_blank_lines, "占%0.2f%%"% (total_blank_lines * 100 / total_lines)) if __name__ == '__main__': run(FILE_PATH)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
相关文章
深入了解Python中Pytest Markers的使用方法
从这篇开始,逐一解决fixture是啥,mark是啥,参数request是啥,钩子函数是啥,parametrize参数化是啥,这些问题,本片先介绍一下mark是啥,以及如何使用2023-09-09python Pandas之DataFrame索引及选取数据
这篇文章主要介绍了python Pandas之DataFrame索引及选取数据,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下2022-07-07Python文件遍历os.walk()与os.listdir()使用及说明
这篇文章主要介绍了Python文件遍历os.walk()与os.listdir()使用及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-11-11
最新评论