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 相关文章推荐
Python中使用PDB库调试程序
Apr 05 Python
python获取指定目录下所有文件名列表的方法
May 20 Python
Python实现爬取逐浪小说的方法
Jul 07 Python
python搭建微信公众平台
Feb 09 Python
python中实现延时回调普通函数示例代码
Sep 08 Python
python单例模式实例解析
Aug 28 Python
在Django model中设置多个字段联合唯一约束的实例
Jul 17 Python
python 画出使用分类器得到的决策边界
Aug 21 Python
使用opencv识别图像红色区域,并输出红色区域中心点坐标
Jun 02 Python
python怎么判断模块安装完成
Jun 19 Python
Python批量获取并保存手机号归属地和运营商的示例
Oct 09 Python
Django 实现图片上传和下载功能
Dec 31 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文件服务实现虚拟挂载其他目录示例
2014/04/17 PHP
了解PHP的返回引用和局部静态变量
2015/06/04 PHP
PHP关键特性之命名空间实例详解
2017/05/06 PHP
Thinkphp开发--集成极光推送
2017/09/15 PHP
实例讲解PHP中使用命名空间
2019/01/27 PHP
docker-compose部署php项目实例详解
2019/07/30 PHP
js类中获取外部函数名的方法
2007/08/19 Javascript
JS Array对象入门分析
2008/10/30 Javascript
jQuery DIV弹出效果实现代码
2009/07/03 Javascript
使用jquery实现图文切换效果另加特效
2013/01/20 Javascript
javascript 小数取整简单实现方式
2014/05/30 Javascript
深入探密Javascript数组方法
2015/01/08 Javascript
Windows 系统下设置Nodejs NPM全局路径
2016/04/26 NodeJs
JavaScript用构造函数如何获取变量的类型名
2016/12/23 Javascript
js中字符型和数值型数字的互相转化方法(必看)
2017/04/25 Javascript
微信小程序自定义组件
2017/08/16 Javascript
layui radio单选限制下一个radio单选的实例
2019/09/03 Javascript
浅析webpack-bundle-analyzer在vue-cli3中的使用
2019/10/23 Javascript
实例讲解Python设计模式编程之工厂方法模式的使用
2016/03/02 Python
python递归查询菜单并转换成json实例
2017/03/27 Python
Python向日志输出中添加上下文信息
2017/05/24 Python
tensorflow学习笔记之简单的神经网络训练和测试
2018/04/15 Python
Django 跨域请求处理的示例代码
2018/05/02 Python
Python3单行定义多个变量或赋值方法
2018/07/12 Python
PyQt5实现类似别踩白块游戏
2019/01/24 Python
python 字符串常用函数详解
2019/09/11 Python
来自全球大都市的高级街头服饰:Pegador
2018/01/03 全球购物
美国花园雕像和家居装饰网上商店:Design Toscano
2019/03/09 全球购物
CK巴西官方网站:Calvin Klein巴西
2019/07/19 全球购物
LightInTheBox法国站:中国跨境电商
2020/03/05 全球购物
应聘护士自荐信
2013/10/21 职场文书
核心价值观演讲稿
2014/05/13 职场文书
总经理人事任命书
2014/06/05 职场文书
四年级学生期末评语
2014/12/26 职场文书
总经理年会致辞
2015/07/29 职场文书
2016十一国庆节感言
2015/12/09 职场文书