python实现代码统计器


Posted in Python onSeptember 19, 2019

本文实例为大家分享了python中的代码行数统计,供大家参考,具体内容如下

思路:统计文件中代码的总行数减去空行单行注释以及多行注释

功能:

1.获取文件内容的总行数

2.排除空行 单行注释 多行注释

def code_statistics(path):
 # # 打开这个文件
 with open(path, 'r', encoding='utf-8') as openFile:
  # 按列读取
  fileline = openFile.readlines()
  # 给非代码行一个变量
  i = 0
  # 整个文件里面内容的总行数
  number_line = len(fileline)
  # 给多行注释一个状态
  note = False
  # 遍历文件内容
  for line in fileline:
   # 空行
   if line == '\n':
    i += 1
   # 单行注释
   elif re.findall('[#]', line):
    i += 1
   # 多行注释开头
   elif re.findall("\'\'\'", line) and note == False:
    i += 1
    note = True
   # 多行注释结尾
   elif re.findall("\'\'\'", line) and note == True:
    i += 1
    note = False
   # 多行注释内部注释
   elif note:
    i += 1
  num_code_line = number_line - i
  print(num_code_line)

如果统计文件夹中的python文件的代码行数,首先就是要遍历文件目录,筛选出以.py结尾的文件,再去统计py文件里面的代码行数

def get_all_fire(path):
 # 得到当前目录下的所有文件
 file_list = os.listdir(path)
 py_file_abs = []
 # 遍历所有文件
 for file_name in file_list:
  # 获取文件及文件夹的绝对路径
  file_abs = os.path.join(path, file_name)
  if os.path.isfile(file_abs) and file_name.endswith('.py'): # 判断当前文件路径是否是文件和.py文件
   py_file_abs.append(file_abs)
   # 判断当前文件路径是不是文件夹
  elif os.path.isdir(file_abs):
   py_file_abs += get_all_fire(file_abs)
 return py_file_abs

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
跟老齐学Python之集合的关系
Sep 24 Python
Python实现各种排序算法的代码示例总结
Dec 11 Python
python中list列表的高级函数
May 17 Python
在python的类中动态添加属性与生成对象
Sep 17 Python
python中模块查找的原理与方法详解
Aug 11 Python
selenium 安装与chromedriver安装的方法步骤
Jun 12 Python
python 画二维、三维点之间的线段实现方法
Jul 07 Python
python使用正则来处理各种匹配问题
Dec 22 Python
Python3.7实现验证码登录方式代码实例
Feb 14 Python
python实现logistic分类算法代码
Feb 28 Python
Softmax函数原理及Python实现过程解析
May 22 Python
Python中os模块的简单使用及重命名操作
Apr 17 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
django中的图片验证码功能
Sep 18 #Python
python tkinter图形界面代码统计工具
Sep 18 #Python
You might like
re0第二季蕾姆被制作组打入冷宫!艾米莉亚女主扶正,原因唏嘘
2020/04/02 日漫
PHP 中英文混合排版中处理字符串常用的函数
2007/04/12 PHP
(PHP实现)只使用++运算实现加法,减法,乘法,除法
2013/06/27 PHP
php define的第二个参数使用方法
2013/11/04 PHP
浅谈php优化需要注意的地方
2014/11/27 PHP
在laravel-admin中列表中禁止某行编辑、删除的方法
2019/10/03 PHP
Jquery实战_读书笔记1—选择jQuery
2010/01/22 Javascript
15个款优秀的 jQuery 图片特效插件推荐
2011/11/21 Javascript
JQuery获取表格数据示例代码
2014/05/26 Javascript
JavaScript中的getDay()方法使用详解
2015/06/09 Javascript
js实现跨域的多种方法
2015/12/25 Javascript
ES6使用export和import实现模块化的方法
2018/09/10 Javascript
React项目动态设置title标题的方法示例
2018/09/26 Javascript
webpack自动打包和热更新的实现方法
2019/06/24 Javascript
JavaScript多种图形实现代码实例
2020/06/28 Javascript
Python中使用多进程来实现并行处理的方法小结
2017/08/09 Python
详解python函数的闭包问题(内部函数与外部函数详述)
2019/05/17 Python
浅谈Django2.0 加xadmin踩的坑
2019/11/15 Python
浅谈python的elementtree模块处理中文注意事项
2020/03/06 Python
django模型类中,null=True,blank=True用法说明
2020/07/09 Python
完美解决Pycharm中matplotlib画图中文乱码问题
2021/01/11 Python
python定义具名元组实例操作
2021/02/28 Python
CSS3 圆角效果
2009/07/15 HTML / CSS
一款纯css3实现的动画加载导航
2014/10/08 HTML / CSS
Expedia印度:您的一站式在线旅游网站
2017/08/24 全球购物
卡骆驰德国官方网站:Crocs德国
2019/03/29 全球购物
J2ee常用的设计模式?说明工厂模式
2015/05/21 面试题
网络教育自我鉴定
2013/11/01 职场文书
《再见了,亲人》教学反思
2014/02/26 职场文书
运动会标语
2014/06/21 职场文书
县委务虚会发言材料
2014/10/20 职场文书
党员民主评议总结
2014/10/20 职场文书
2014年财政所工作总结
2014/11/22 职场文书
督导岗位职责
2015/02/04 职场文书
三十年再续同学情倡议书
2019/11/27 职场文书
Win11软件图标固定到任务栏
2022/04/19 数码科技