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中使用smtplib和email模块发送邮件实例
Apr 22 Python
python实现简单ftp客户端的方法
Jun 28 Python
python递归删除指定目录及其所有内容的方法
Jan 13 Python
python中lambda()的用法
Nov 16 Python
python如何查看微信消息撤回
Nov 27 Python
PyQt5 实现给窗口设置背景图片的方法
Jun 13 Python
Django框架基础模板标签与filter使用方法详解
Jul 23 Python
wxPython实现带颜色的进度条
Nov 19 Python
Django项目uwsgi+Nginx保姆级部署教程实现
Apr 19 Python
python的launcher用法知识点总结
Aug 07 Python
Pandas的数据过滤实现
Jan 15 Python
一行Python命令实现批量加水印
Apr 07 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
多文件上传的例子
2006/10/09 PHP
php数组应用之比较两个时间的相减排序
2008/08/18 PHP
PHP JS Ip地址及域名格式检测代码
2013/09/27 PHP
PHP中set error handler函数用法小结
2015/11/11 PHP
在Laravel中使用DataTables插件的方法
2018/05/29 PHP
window.onload 加载完毕的问题及解决方案(下)
2009/07/09 Javascript
查看图片(前进后退)功能实现js代码
2013/04/24 Javascript
jquery操作select大全
2014/04/25 Javascript
ActiveX控件与Javascript之间的交互示例
2014/06/04 Javascript
jQuery实现Div拖动+键盘控制综合效果的方法
2015/03/10 Javascript
jQuery回到顶部的代码
2016/07/09 Javascript
微信小程序之电影影评小程序制作代码
2017/08/03 Javascript
详解easyui基于 layui.laydate日期扩展组件
2018/07/18 Javascript
JS常见构造模式实例对比分析
2018/08/27 Javascript
使用vue2实现带地区编号和名称的省市县三级联动效果
2018/11/05 Javascript
利用d3.js力导布局绘制资源拓扑图实例教程
2019/01/08 Javascript
js滚轮事件 js自定义滚动条的实现
2020/01/18 Javascript
JS async 函数的含义和用法实例总结
2020/04/08 Javascript
[02:16]深扒TI7聊天轮盘语音出处2
2017/05/11 DOTA
跟老齐学Python之坑爹的字符编码
2014/09/28 Python
提升Python程序运行效率的6个方法
2015/03/31 Python
Python的迭代器和生成器
2015/07/29 Python
python绘制漏斗图步骤详解
2019/03/04 Python
Django Sitemap 站点地图的实现方法
2019/04/29 Python
Python底层封装实现方法详解
2020/01/22 Python
牦牛毛户外探险服装:Kora
2019/02/08 全球购物
德国Discount-Apotheke中文官网:DC德式康线上药房
2020/02/18 全球购物
临床医学系毕业生推荐信
2013/11/09 职场文书
物业招聘计划书
2014/01/10 职场文书
2014的自我评价
2014/01/13 职场文书
有多年工作经验的自我评价
2014/03/02 职场文书
铣床操作工岗位职责
2014/06/13 职场文书
上诉状格式
2015/05/23 职场文书
k8s部署redis cluster集群的实现
2021/06/24 Redis
Promise静态四兄弟实现示例详解
2022/07/07 Javascript
Go中使用gjson来操作JSON数据的实现
2022/08/14 Golang