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演示数型数据结构的教程
Apr 03 Python
python实现数组插入新元素的方法
May 22 Python
PyChar学习教程之自定义文件与代码模板详解
Jul 17 Python
Python实现购物车功能的方法分析
Nov 10 Python
Django中login_required装饰器的深入介绍
Nov 24 Python
pyqt5的QWebEngineView 使用模板的方法
Aug 18 Python
python抓取搜狗微信公众号文章
Apr 01 Python
Python generator生成器和yield表达式详解
Aug 08 Python
python元组和字典的内建函数实例详解
Oct 22 Python
python 实现保存最新的三份文件,其余的都删掉
Dec 22 Python
linux系统下pip升级报错的解决方法
Jan 31 Python
用python制作个视频下载器
Feb 01 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 生成饼图 三维饼图
2009/09/28 PHP
destoon实现公司新闻详细页添加评论功能的方法
2014/07/15 PHP
php实现短信发送代码
2015/07/05 PHP
PHP合并discuz用户脚本的方法
2015/08/04 PHP
PHP7正式版测试,性能惊艳!
2015/12/08 PHP
php中mkdir()函数的权限问题分析
2016/09/24 PHP
PHP切割整数工具类似微信红包金额分配的思路详解
2019/09/18 PHP
自适应图片大小的弹出窗口
2006/07/27 Javascript
jquery.validate使用攻略 第一部
2010/07/01 Javascript
javascript中input中readonly和disabled区别介绍
2012/10/23 Javascript
滚动图片效果 jquery实现回旋滚动效果
2013/01/08 Javascript
实现图片预加载的三大方法及优缺点分析
2014/11/19 Javascript
jQuery.holdReady()方法用法实例
2014/12/27 Javascript
javascript 内置对象及常见API详细介绍
2016/11/01 Javascript
利用Vue.js实现checkbox的全选反选效果
2017/01/18 Javascript
js中split()方法得到的数组长度问题
2018/07/19 Javascript
angular2组件中定时刷新并清除定时器的实例讲解
2018/08/31 Javascript
移动端(微信等使用vConsole调试console的方法
2019/03/05 Javascript
微信小程序Flex布局用法深入浅出分析
2019/04/25 Javascript
关于layui表单中按钮自动提交的解决方法
2019/09/09 Javascript
layer弹出层倒计时关闭的实现方法
2019/09/27 Javascript
webpack常用构建优化策略小结
2019/11/21 Javascript
js实现特别简单的钟表效果
2020/09/14 Javascript
Ant Design Pro 之 ProTable使用操作
2020/10/31 Javascript
[40:03]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#1EHOME VS Archon
2016/03/02 DOTA
Python专用方法与迭代机制实例分析
2014/09/15 Python
Python实现二分查找算法实例
2015/05/26 Python
解决python写入mysql中datetime类型遇到的问题
2018/06/21 Python
django-rest-framework 自定义swagger过程详解
2019/07/18 Python
python 6.7 编写printTable()函数表格打印(完整代码)
2020/03/25 Python
详解CSS的border边框属性及其在CSS3中的新特性
2016/05/10 HTML / CSS
印度最大的时尚购物网站:Myntra
2018/09/13 全球购物
一体化教学实施方案
2014/05/10 职场文书
先进个人事迹材料
2014/12/29 职场文书
2017春节晚会开幕词
2016/03/03 职场文书
Go语言空白表示符_的实例用法
2021/07/04 Golang