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 不关闭控制台的实现方法
Oct 23 Python
基于Python的身份证号码自动生成程序
Aug 15 Python
python3使用requests模块爬取页面内容的实战演练
Sep 25 Python
python list元素为tuple时的排序方法
Apr 18 Python
python+logging+yaml实现日志分割
Jul 22 Python
用pytorch的nn.Module构造简单全链接层实例
Jan 14 Python
python目标检测给图画框,bbox画到图上并保存案例
Mar 10 Python
关于tensorflow softmax函数用法解析
Jun 30 Python
详解pycharm配置python解释器的问题
Oct 15 Python
python Scrapy爬虫框架的使用
Jan 21 Python
Pandas||过滤缺失数据||pd.dropna()函数的用法说明
May 14 Python
解决Pytorch半精度浮点型网络训练的问题
May 24 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
星际RPG字典
2020/03/04 星际争霸
相对路径转化成绝对路径
2007/04/10 PHP
PHP中$_FILES的使用方法及注意事项说明
2014/02/14 PHP
通过下拉框的值来确定输入框是否可以为空的代码
2011/10/18 Javascript
input 和 textarea 输入框最大文字限制的jquery插件
2011/10/27 Javascript
一个JavaScript去除字符串末尾的空白实例代码
2014/09/22 Javascript
基于jQuery实现最基本的淡入淡出效果实例
2015/02/02 Javascript
纯jquery实现模仿淘宝购物车结算
2015/08/20 Javascript
基于jquery实现鼠标左右拖动滑块滑动附源码下载
2015/12/23 Javascript
Bootstrap每天必学之导航条(二)
2016/03/01 Javascript
深入浅析Bootstrap列表组组件
2016/05/03 Javascript
全面解析Bootstrap中scrollspy(滚动监听)的使用方法
2016/06/06 Javascript
jQuery实现的网格线绘制方法
2016/06/20 Javascript
深入理解Javascript中的valueOf与toString
2017/01/04 Javascript
原生JS实现图片无缝滚动方法(附带封装的运动框架)
2017/10/01 Javascript
JS使用贪心算法解决找零问题示例
2017/11/27 Javascript
详解SPA中前端路由基本原理与实现方式
2018/09/12 Javascript
在NodeJs中使用node-schedule增加定时器任务的方法
2020/06/08 NodeJs
python实现每次处理一个字符的三种方法
2014/10/09 Python
Python方法的延迟加载的示例代码
2017/12/18 Python
Python SQLite3简介
2018/02/22 Python
Python 25行代码实现的RSA算法详解
2018/04/10 Python
Python使用APScheduler实现定时任务过程解析
2019/09/11 Python
python飞机大战pygame游戏背景设计详解
2019/12/17 Python
Python图像处理库PIL中图像格式转换的实现
2020/02/26 Python
python打开文件的方式有哪些
2020/06/29 Python
python如何随机生成高强度密码
2020/08/19 Python
CSS3制作炫酷的下拉菜单及弹起式选单的实例分享
2016/05/17 HTML / CSS
HTML5 语义化结构化规范化
2008/10/17 HTML / CSS
Lookfantastic德国官网:英国知名美妆购物网站
2017/06/11 全球购物
西班牙家用电器和电子产品购物网站:Mi Electro
2019/02/25 全球购物
迟到检讨书300字
2014/02/14 职场文书
《北京的春节》教学反思
2014/04/07 职场文书
2015新教师教学工作总结
2015/07/22 职场文书
践行三严三实心得体会(2016推荐篇)
2016/01/06 职场文书
浅析InnoDB索引结构
2021/04/05 MySQL