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中的特殊语法:filter、map、reduce、lambda介绍
Apr 14 Python
Android分包MultiDex策略详解
Oct 30 Python
python如何解析配置文件并应用到项目中
Jun 27 Python
python提取log文件内容并画出图表
Jul 08 Python
使用python模拟命令行终端的示例
Aug 13 Python
Python3.5 win10环境下导入kera/tensorflow报错的解决方法
Dec 19 Python
Python3 filecmp模块测试比较文件原理解析
Mar 23 Python
使用IPython或Spyder将省略号表示的内容完整输出
Apr 20 Python
python+adb+monkey实现Rom稳定性测试详解
Apr 23 Python
Python从MySQL数据库中面抽取试题,生成试卷
Jan 14 Python
有趣的二维码:使用MyQR和qrcode来制作二维码
May 10 Python
python周期任务调度工具Schedule使用详解
Nov 23 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下通过exec获得计算机的唯一标识[CPU,网卡 MAC地址]
2011/06/09 PHP
PHP查询附近的人及其距离的实现方法
2016/05/11 PHP
PHP读取zip文件的方法示例
2016/11/17 PHP
Yii2 中实现单点登录的方法
2018/03/09 PHP
表单的一些基本用法与技巧
2006/07/15 Javascript
JS完成代码前最好对其做5件事
2013/04/07 Javascript
教你用jquery实现iframe自适应高度
2014/06/11 Javascript
详解JavaScript对象和数组
2015/12/03 Javascript
jQuery语法小结(超实用)
2015/12/31 Javascript
深入理解JS函数的参数(arguments)的使用
2016/05/28 Javascript
JS+Canvas实现的俄罗斯方块游戏完整实例
2016/12/12 Javascript
使用react-router4.0实现重定向和404功能的方法
2017/08/28 Javascript
Web技术实现移动监测的介绍
2017/09/18 Javascript
基于es6三点运算符的使用方法(实例讲解)
2017/10/12 Javascript
jQuery实现ajax回调函数带入参数的方法示例
2018/06/26 jQuery
解决Vue中引入swiper,在数据渲染的时候,发生不滑动的问题
2018/09/27 Javascript
小程序登录/注册页面设计的实现代码
2019/05/24 Javascript
JS面向对象编程实现的拖拽功能案例详解
2020/03/03 Javascript
angular组件间传值测试的方法详解
2020/05/07 Javascript
JQuery Ajax如何实现注册检测用户名
2020/09/25 jQuery
python判断、获取一张图片主色调的2个实例
2014/04/10 Python
Python中让MySQL查询结果返回字典类型的方法
2014/08/22 Python
详解Python网络爬虫功能的基本写法
2016/01/28 Python
python之PyMongo使用总结
2017/05/26 Python
[原创]Python入门教程3. 列表基本操作【定义、运算、常用函数】
2018/10/30 Python
python实现一个点绕另一个点旋转后的坐标
2019/12/04 Python
python操作微信自动发消息的实现(微信聊天机器人)
2020/07/14 Python
优瑞自动咖啡机官网:Jura
2018/09/29 全球购物
德国家具购物网站:Möbel Höffner
2019/08/26 全球购物
打架检讨书800字
2014/01/10 职场文书
地道战观后感300字
2015/06/04 职场文书
红色影片观后感
2015/06/18 职场文书
学校证明范文
2015/06/24 职场文书
2015年秋季运动会加油稿
2015/07/22 职场文书
golang goroutine顺序输出方式
2021/04/29 Golang
Python一些基本的图像操作和处理总结
2021/06/23 Python