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类的专用方法实例分析
Jan 09 Python
Python如何为图片添加水印
Nov 25 Python
使用python实现tcp自动重连
Jul 02 Python
Python将list中的string批量转化成int/float的方法
Jun 26 Python
python的scikit-learn将特征转成one-hot特征的方法
Jul 10 Python
Django 表单模型选择框如何使用分组
May 16 Python
Python基本数据结构之字典类型dict用法分析
Jun 08 Python
用python求一个数组的和与平均值的实现方法
Jun 29 Python
pycharm新建一个python工程步骤
Jul 16 Python
Django MEDIA的配置及用法详解
Jul 25 Python
基于Python爬取fofa网页端数据过程解析
Jul 13 Python
用gpu训练好的神经网络,用tensorflow-cpu跑出错的原因及解决方案
Mar 03 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在Web开发领域的优势
2006/10/09 PHP
文件上传的实现
2006/10/09 PHP
PHP开发框架总结收藏
2008/04/24 PHP
sql注入与转义的php函数代码
2013/06/17 PHP
php数字运算验证码的实现代码
2015/07/30 PHP
从javascript语言本身谈项目实战
2006/12/27 Javascript
javascript 设计模式之单体模式 面向对象学习基础
2010/04/18 Javascript
Extjs4 消息框去掉关闭按钮(类似Ext.Msg.alert)
2013/04/02 Javascript
Jquery创建层显示标题和内容且随鼠标移动而移动
2014/01/26 Javascript
js中for in语句的用法讲解
2015/04/24 Javascript
jQuery form插件的使用之处理server返回的JSON, XML,HTML数据
2016/01/26 Javascript
JS/jQ实现免费获取手机验证码倒计时效果
2016/06/13 Javascript
JavaScript实现url参数转成json形式
2016/09/25 Javascript
微信JSAPI支付操作需要注意的细节
2017/01/10 Javascript
jQuery实现点击下拉框中的值累加到文本框中的方法示例
2017/10/28 jQuery
JS基于递归实现网页版计算器的方法分析
2017/12/20 Javascript
vue 1.0 结合animate.css定义动画效果
2018/07/11 Javascript
VUE实现可随意拖动的弹窗组件
2018/09/25 Javascript
vue中slot(插槽)的介绍与使用
2018/11/12 Javascript
node中实现删除目录的几种方法
2019/06/24 Javascript
浅谈Three.js截图并下载的大坑
2019/11/01 Javascript
Selenium执行Javascript脚本参数及返回值过程详解
2020/04/01 Javascript
Jquery+AJAX实现无刷新上传并重命名文件操作示例【PHP后台接收】
2020/05/29 jQuery
python中 ? : 三元表达式的使用介绍
2013/10/09 Python
Python本地与全局命名空间用法实例
2015/06/16 Python
python中pygame针对游戏窗口的显示方法实例分析(附源码)
2015/11/11 Python
python处理xml文件的方法小结
2017/05/02 Python
Python对字符串实现去重操作的方法示例
2017/08/11 Python
5 分钟读懂Python 中的 Hook 钩子函数
2020/12/09 Python
缴纳养老保险的证明
2014/01/10 职场文书
校园餐饮创业计划书
2014/01/10 职场文书
会计专业大学生职业生涯规划范文
2014/01/11 职场文书
教学质量评估实施方案
2014/03/17 职场文书
财产公证书
2014/04/10 职场文书
2014年机关党委工作总结
2014/12/11 职场文书
雨雪天气温馨提示
2015/07/15 职场文书