python统计指定目录内文件的代码行数


Posted in Python onSeptember 19, 2019

python统计指定目录内文件的代码行数,程序实现统计指定目录内各个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 相关文章推荐
使用相同的Apache实例来运行Django和Media文件
Jul 22 Python
Python判断两个对象相等的原理
Dec 12 Python
Python设计模式之工厂模式简单示例
Jan 09 Python
numpy中loadtxt 的用法详解
Aug 03 Python
python中类的属性和方法介绍
Nov 27 Python
python反编译学习之字节码详解
May 19 Python
浅谈Python大神都是这样处理XML文件的
May 31 Python
详解Python中打乱列表顺序random.shuffle()的使用方法
Nov 11 Python
Python 实现判断图片格式并转换,将转换的图像存到生成的文件夹中
Jan 13 Python
keras.utils.to_categorical和one hot格式解析
Jul 02 Python
记一次python 爬虫爬取深圳租房信息的过程及遇到的问题
Nov 24 Python
Python实现图片指定位置加图片水印(附Pyinstaller打包exe)
Mar 04 Python
python如何从文件读取数据及解析
Sep 19 #Python
python实现代码统计器
Sep 19 #Python
python实现代码统计程序
Sep 19 #Python
python tkinter图形界面代码统计工具(更新)
Sep 18 #Python
python3获取url文件大小示例代码
Sep 18 #Python
弄懂这56个Python使用技巧(轻松掌握Python高效开发)
Sep 18 #Python
python3使用GUI统计代码量
Sep 18 #Python
You might like
用PHP和ACCESS写聊天室(八)
2006/10/09 PHP
PHP中文件读、写、删的操作(PHP中对文件和目录操作)
2012/03/06 PHP
利用jQuery操作对象数组的实现代码
2011/04/27 Javascript
jQuery获取浏览器中的分辨率实现代码
2013/04/23 Javascript
jquery滚动到顶部底部代码
2015/04/20 Javascript
jQuery左侧大图右侧小图焦点图幻灯切换代码分享
2015/08/19 Javascript
JQuery的常用选择器、过滤器、方法全面介绍
2016/05/25 Javascript
微信小程序 时间格式化(util.formatTime(new Date))详解
2016/11/16 Javascript
jquery获取链接地址和跳转详解(推荐)
2017/08/15 jQuery
详解webpack运行Babel教程
2018/06/13 Javascript
vue实现的上拉加载更多数据/分页功能示例
2019/05/25 Javascript
JavaScript的查询机制LHS和RHS解析
2019/08/16 Javascript
VUE的history模式下除了index外其他路由404报错解决办法
2019/08/21 Javascript
通过原生vue添加滚动加载更多功能
2019/11/21 Javascript
Python下的twisted框架入门指引
2015/04/15 Python
Python中的fileinput模块的简单实用示例
2015/07/09 Python
Python的math模块中的常用数学函数整理
2016/02/04 Python
Python矩阵常见运算操作实例总结
2017/09/29 Python
使用pyinstaller打包PyQt4程序遇到的问题及解决方法
2019/06/24 Python
Python实现K折交叉验证法的方法步骤
2019/07/11 Python
使用Python脚本从文件读取数据代码实例
2020/01/19 Python
美国高品质个性化珠宝销售网站:Jewlr
2018/05/03 全球购物
英国网上购买门:Direct Doors
2018/06/07 全球购物
在C语言中"指针和数组等价"到底是什么意思?
2014/03/24 面试题
设置器与访问器的定义以及各自特点
2016/01/08 面试题
个人求职简历的自我评价
2013/10/19 职场文书
幼儿园消防演练方案
2014/02/13 职场文书
大型会议接待方案
2014/03/01 职场文书
《地震中的父与子》教学反思
2014/04/10 职场文书
相亲大会策划方案
2014/06/05 职场文书
授权委托书格式
2014/07/31 职场文书
咖啡厅商业计划书
2014/09/15 职场文书
商务司机岗位职责
2015/04/10 职场文书
上诉答辩状范文
2015/05/22 职场文书
暖春观后感
2015/06/08 职场文书
详解Java实现设计模式之责任链模式
2021/06/23 Java/Android