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使用在线API查询IP对应的地理位置信息实例
Jun 01 Python
Python中的两个内置模块介绍
Apr 05 Python
Python实现网络端口转发和重定向的方法
Sep 19 Python
django 常用orm操作详解
Sep 13 Python
python爬虫爬取某站上海租房图片
Feb 04 Python
python如何实现反向迭代
Mar 20 Python
pycharm运行程序时在Python console窗口中运行的方法
Dec 03 Python
网易有道2017内推编程题 洗牌(python)
Jun 19 Python
Python内置类型性能分析过程实例
Jan 29 Python
Django实现随机图形验证码的示例
Oct 15 Python
教你利用Selenium+python自动化来解决pip使用异常
May 20 Python
Python OpenCV 彩色与灰度图像的转换实现
Jun 05 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
PHP取得一个类的属性和方法的实现代码
2011/05/22 PHP
php curl常见错误:SSL错误、bool(false)
2011/12/28 PHP
PHP无法访问远程mysql的问题分析及解决
2013/05/16 PHP
PHP实现的XXTEA加密解密算法示例
2018/08/28 PHP
Gambit vs CL BO3 第三场 2.13
2021/03/10 DOTA
一个很简单的办法实现TD的加亮效果.
2006/06/29 Javascript
JS面向对象、prototype、call()、apply()
2009/05/14 Javascript
javascript自执行函数之伪命名空间封装法
2010/12/25 Javascript
jQuery UI Autocomplete 体验分享
2012/02/14 Javascript
关于JS判断图片是否加载完成且获取图片宽度的方法
2013/04/09 Javascript
jQuery弹出(alert)select选择的值
2013/04/21 Javascript
Javascript alert消息换行的方法
2013/08/07 Javascript
jquery选择器之属性过滤选择器详解
2014/01/27 Javascript
JavaScript高级程序设计(第三版)学习笔记6、7章
2016/03/11 Javascript
js编写选项卡效果
2017/05/23 Javascript
关于vue.js v-bind 的一些理解和思考
2017/06/06 Javascript
详解React+Koa实现服务端渲染(SSR)
2018/05/23 Javascript
Vue.js递归组件实现组织架构树和选人功能案例分析
2019/07/03 Javascript
JavaScript 接口原理与用法实例详解
2020/05/12 Javascript
Python实现读取目录所有文件的文件名并保存到txt文件代码
2014/11/22 Python
Python 实现购物商城,含有用户入口和商家入口的示例
2017/09/15 Python
selenium+python实现1688网站验证码图片的截取功能
2018/08/14 Python
python-pyinstaller、打包后获取路径的实例
2019/06/10 Python
python递归法实现简易连连看小游戏
2020/03/25 Python
python和opencv构建运动检测器的实现
2021/03/03 Python
The Hut英国:英国领先的豪华在线百货商店
2019/07/26 全球购物
办理退休介绍信
2014/01/09 职场文书
计算机专业求职信
2014/06/02 职场文书
物资采购方案
2014/06/12 职场文书
咖啡店创业计划书范文
2014/09/15 职场文书
对党的十八届四中全会的期盼
2014/10/17 职场文书
民政局标准版离婚协议书
2014/12/01 职场文书
致青春观后感
2015/06/09 职场文书
2015年七夕情人节感言
2015/08/03 职场文书
三种方式清除vue路由跳转router-link的历史记录
2022/04/10 Vue.js
Golang MatrixOne使用介绍和汇编语法
2022/04/19 Golang