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为tornado添加recaptcha验证码功能
Feb 26 Python
python字符串连接方式汇总
Aug 21 Python
Python利用正则表达式匹配并截取指定子串及去重的方法
Jul 30 Python
Python实现两个list对应元素相减操作示例
Jun 09 Python
python字典DICT类型合并详解
Aug 17 Python
用Python登录好友QQ空间点赞的示例代码
Nov 04 Python
对python中的for循环和range内置函数详解
Apr 17 Python
python中不能连接超时的问题及解决方法
Jun 10 Python
Python命名空间的本质和加载顺序
Dec 17 Python
解决tensorflow打印tensor有省略号的问题
Feb 04 Python
Python之字符串的遍历的4种方式
Dec 08 Python
浅析python实现动态规划背包问题
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计算2点经纬度之间的距离代码
2013/08/12 PHP
Mootools 图片展示插件(lightbox,ImageMenu)收集集合
2010/05/21 Javascript
js对象之JS入门之Array对象操作小结
2011/01/09 Javascript
JS如何判断移动端访问设备并解析对应CSS
2013/11/27 Javascript
javascript自动给文本url地址增加链接的方法分享
2014/01/20 Javascript
JS数组的赋值介绍
2014/03/10 Javascript
jquery 扑捉回车键事件代码
2014/04/24 Javascript
js限制checkbox选中个数以限制六个为例
2014/07/15 Javascript
JavaScript中判断页面关闭、页面刷新的实现代码
2014/08/27 Javascript
JavaScript中的公有、私有、特权和静态成员用法分析
2014/11/20 Javascript
手机端页面rem宽度自适应脚本
2015/05/20 Javascript
js实现仿爱微网两级导航菜单效果代码
2015/08/31 Javascript
Angular1.x自定义指令实例详解
2017/03/01 Javascript
20170918 前端开发周报之JS前端开发必看
2017/09/18 Javascript
9种改善AngularJS性能的方法
2017/11/28 Javascript
JS插件clipboard.js实现一键复制粘贴功能
2020/12/04 Javascript
vue使用Proxy实现双向绑定的方法示例
2019/03/20 Javascript
js实现GIF动图分解成多帧图片上传
2019/10/24 Javascript
Vue中使用Lodop插件实现打印功能的简单方法
2019/12/19 Javascript
Node.js API详解之 string_decoder用法实例分析
2020/04/29 Javascript
python基础教程项目三之万能的XML
2018/04/02 Python
Python实现的基于优先等级分配糖果问题算法示例
2018/04/25 Python
Django中使用第三方登录的示例代码
2018/08/20 Python
Windows系统下PhantomJS的安装和基本用法
2018/10/21 Python
Python求一批字符串的最长公共前缀算法示例
2019/03/02 Python
Python基本数据结构之字典类型dict用法分析
2019/06/08 Python
对python中的装包与解包实例详解
2019/08/24 Python
pyqt5中动画的使用详解
2020/04/01 Python
大专应届毕业生求职信
2014/07/15 职场文书
2014党员民主评议个人思想剖析发言
2014/09/19 职场文书
医院护士工作检讨书
2014/10/26 职场文书
欠款纠纷起诉状
2015/05/19 职场文书
2016抗战胜利71周年红领巾广播稿
2015/12/18 职场文书
爱心捐款倡议书:点燃希望,传递温暖
2019/11/04 职场文书
教你使用pyinstaller打包Python教程
2021/05/27 Python
如何利用Python实现n*n螺旋矩阵
2022/01/18 Python