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 相关文章推荐
python3使用urllib示例取googletranslate(谷歌翻译)
Jan 23 Python
python读取json文件并将数据插入到mongodb的方法
Mar 23 Python
python实现数独算法实例
Jun 09 Python
Python中的连接符(+、+=)示例详解
Jan 13 Python
python添加菜单图文讲解
Jun 04 Python
Python virtualenv虚拟环境实现过程解析
Apr 18 Python
python中return如何写
Jun 18 Python
Android Q之气泡弹窗的实现示例
Jun 23 Python
python如何操作mysql
Aug 17 Python
python中os.remove()用法及注意事项
Jan 31 Python
python 实现图片裁剪小工具
Feb 02 Python
python全面解析接口返回数据
Feb 12 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操作xml代码
2010/06/17 PHP
PHP字符串中特殊符号的过滤方法介绍
2014/02/18 PHP
php获取四位字母和数字的随机数的实现方法
2015/01/09 PHP
php实现在线通讯录功能(附源码)
2016/05/13 PHP
PHP redis实现超迷你全文检索
2017/03/04 PHP
Laravel框架中队列和工作(Queues、Jobs)操作实例详解
2020/04/06 PHP
JavaScript 继承详解(一)
2009/07/13 Javascript
JQuery一种取同级值的方式(比如你在GridView中)
2012/03/15 Javascript
JS获取几种URL地址的方法小结
2014/02/26 Javascript
JQuery弹出层示例可自定义
2014/05/19 Javascript
javascript使用正则获取url上的某个参数
2014/09/04 Javascript
使用Raygun来自动追踪AngularJS中的异常
2015/06/23 Javascript
JS中使用正则表达式g模式和非g模式的区别
2017/04/01 Javascript
js实现时钟定时器
2020/03/26 Javascript
javascript实现画板功能
2020/04/12 Javascript
基于python时间处理方法(详解)
2017/08/14 Python
python基础教程项目四之新闻聚合
2018/04/02 Python
如何利用Anaconda配置简单的Python环境
2019/06/24 Python
django的ORM操作 增加和查询
2019/07/26 Python
Python collections模块使用方法详解
2019/08/28 Python
基于Pytorch SSD模型分析
2020/02/18 Python
使用Python解析Chrome浏览器书签的示例
2020/11/13 Python
Vero Moda西班牙官方购物网站:丹麦BESTSELLER旗下知名女装品牌
2018/04/27 全球购物
eDreams加拿大:廉价航班、酒店和度假
2019/03/29 全球购物
英国玛莎百货新西兰:Marks & Spencer New Zealand
2019/07/21 全球购物
一套PHP的笔试题
2013/05/31 面试题
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢?
2016/08/18 面试题
应聘教师推荐信
2013/10/31 职场文书
专科应届生求职信
2013/11/24 职场文书
升旗仪式演讲稿
2014/05/08 职场文书
酒店开业策划方案
2014/06/02 职场文书
中国梦演讲稿开场白
2014/08/28 职场文书
战略性融资合作协议书范本
2014/10/17 职场文书
2015毕业生自我评价范文
2015/03/02 职场文书
兴趣班停课通知
2015/04/24 职场文书
详解JSON.parse和JSON.stringify用法
2022/02/18 Javascript