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字典get()方法用法分析
Apr 17 Python
Python的装饰器使用详解
Jun 26 Python
Python中read()、readline()和readlines()三者间的区别和用法
Jul 30 Python
Python中的pygal安装和绘制直方图代码分享
Dec 08 Python
Python判断是否json是否包含一个key的方法
Dec 31 Python
如何通过python画loss曲线的方法
Jun 26 Python
python基于json文件实现的gearman任务自动重启代码实例
Aug 13 Python
Python3实现zip分卷压缩过程解析
Oct 09 Python
Python实现计算长方形面积(带参数函数demo)
Jan 18 Python
详解Ubuntu环境下部署Django+uwsgi+nginx总结
Apr 02 Python
使用Python对Dicom文件进行读取与写入的实现
Apr 20 Python
django上传文件的三种方式
Apr 29 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
CPU步进是什么意思?i3-9100F B0步进和U0步进区别知识科普
2020/03/17 数码科技
一条久听不愿放下的DIY森海MX500,三言两语话神奇
2021/03/02 无线电
PHPMYADMIN 简明安装教程 推荐
2010/03/07 PHP
php入门学习知识点七 PHP函数的基本应用
2011/07/14 PHP
php提交表单发送邮件的方法
2015/03/20 PHP
PHP模块化安装教程
2016/06/01 PHP
php添加数据到xml文件的简单例子
2016/09/08 PHP
php注册和登录界面的实现案例(推荐)
2016/10/24 PHP
js几个不错的函数 $$()
2006/10/09 Javascript
JSQL  一个 web DB 的封装
2010/05/05 Javascript
IE下JS读取xml文件示例代码
2013/08/05 Javascript
深入分析原生JavaScript事件
2014/12/29 Javascript
JavaScript学习笔记(三):JavaScript也有入口Main函数
2015/09/12 Javascript
jQuery原理系列-常用Dom操作详解
2016/06/07 Javascript
js滚轮事件兼容性问题需要注意哪些
2016/11/15 Javascript
js css自定义分页效果
2017/02/24 Javascript
JS基于正则实现数字千分位用逗号分隔的方法
2017/06/16 Javascript
基于Cookie常用操作以及属性介绍
2017/09/07 Javascript
vue 监听键盘回车事件详解 @keyup.enter || @keyup.enter.native
2018/08/25 Javascript
JavaScript 点击触发复制功能实例详解
2018/11/02 Javascript
vue resource发送请求的几种方式
2019/09/30 Javascript
JS正则表达式验证密码强度
2020/03/18 Javascript
JavaScript实时更新当前的时间的示例代码
2020/07/15 Javascript
[01:01:25]DOTA2上海特级锦标赛B组资格赛#2 Fnatic VS Spirit第三局
2016/02/27 DOTA
[02:05]DOTA2完美大师赛趣味视频之看我表演
2017/11/18 DOTA
Python处理PDF及生成多层PDF实例代码
2017/04/24 Python
Python3.6简单的操作Mysql数据库的三个实例
2018/10/17 Python
利用Python的sympy包求解一元三次方程示例
2019/11/22 Python
常用python爬虫库介绍与简要说明
2020/01/25 Python
如何用python处理excel表格
2020/06/09 Python
Python 删除List元素的三种方法remove、pop、del
2020/11/16 Python
html5 的a标签 Href 拨电话的写法
2013/11/04 HTML / CSS
西安众合通用.net笔试题
2013/03/18 面试题
个人合作协议书范本
2014/04/18 职场文书
旅游安全协议书
2014/04/21 职场文书
新文化运动的口号
2014/06/21 职场文书