python统计指定目录内文件的代码行数


Posted in Python onSeptember 19, 2019

python统计指定目录内文件的代码行数,程序实现统计指定目录内各个python文件的代码总行数,注释行数,空行数,并算出所占百分比

这符合一些公司的小需求,实际代码量的统计工作

效果如图

python统计指定目录内文件的代码行数

python统计指定目录内文件的代码行数

代码如下:

#coding:utf-8
import os,re
 
#代码所在目录
FILE_PATH = './'
 
def analyze_code(codefilesource):
  '''
  打开一个py文件,统计其中的代码行数,包括空行和注释
  返回含该文件总行数,注释行数,空行数的列表
  :param codefilesource:
  :return:
  '''
  total_line = 0
  comment_line = 0
  blank_line = 0
  with open(codefilesource,encoding='gb18030',errors='ignore') as f:
    lines = f.readlines()
    total_line = len(lines)
    line_index = 0
    #遍历每一行
    while line_index < total_line:
      line = lines[line_index]
      #检查是否为注释
      if line.startswith("#"):
        comment_line += 1
      elif re.match("\s*'''",line) is not None:
        comment_line += 1
        while re.match(".*'''$",line) is None:
          line = lines[line_index]
          comment_line += 1
          line_index += 1
      #检查是否为空行
      elif line =='\n':
        blank_line += 1
      line_index += 1
  print("在%s中:"%codefilesource)
  print("代码行数:",total_line)
  print("注释行数:",comment_line,"占%0.2f%%"%(comment_line*100/total_line))
  print("空行数:", blank_line, "占%0.2f%%"%(blank_line * 100 / total_line))
  return [total_line,comment_line,blank_line]
def run(FILE_PATH):
  os.chdir(FILE_PATH)
  #遍历py文件
  total_lines = 0
  total_comment_lines = 0
  total_blank_lines = 0
  for i in os.listdir(os.getcwd()):
    if os.path.splitext(i)[1] == '.py':
      line = analyze_code(i)
      total_lines,total_comment_lines,total_blank_lines=total_lines+line[0],total_comment_lines+line[1],total_blank_lines+line[2]
  print("总代码行数:",total_lines)
  print("总注释行数:",total_comment_lines,"占%0.2f%%"%(total_comment_lines*100/total_lines))
  print("总空行数:", total_blank_lines, "占%0.2f%%"% (total_blank_lines * 100 / total_lines))
 
if __name__ == '__main__':
  run(FILE_PATH)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python正则表达式的使用范例详解
Aug 08 Python
浅谈Python中chr、unichr、ord字符函数之间的对比
Jun 16 Python
Python简单生成随机姓名的方法示例
Dec 27 Python
Python获取指定文件夹下的文件名的方法
Feb 06 Python
Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
Mar 19 Python
Scrapy使用的基本流程与实例讲解
Oct 21 Python
python获取中文字符串长度的方法
Nov 14 Python
不归路系列:Python入门之旅-一定要注意缩进!!!(推荐)
Apr 16 Python
Python 中判断列表是否为空的方法
Nov 24 Python
Django多数据库联用实现方法解析
Nov 12 Python
python基于win32api实现键盘输入
Dec 09 Python
python实战之用emoji表情生成文字
May 08 Python
python如何从文件读取数据及解析
Sep 19 #Python
python实现代码统计器
Sep 19 #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
You might like
php搜索文件程序分享
2015/10/30 PHP
细品javascript 寻址,闭包,对象模型和相关问题
2009/04/27 Javascript
js 获取屏幕各种宽高的方法(浏览器兼容)
2013/05/15 Javascript
Javascript基础教程之argument 详解
2015/01/18 Javascript
js格式化输入框内金额、银行卡号
2016/02/01 Javascript
javascript之Array 数组对象详解
2016/06/07 Javascript
jQuery实现表格文本框淡入更改值后淡出效果
2016/09/27 Javascript
微信小程序之数据缓存的实例详解
2017/09/29 Javascript
babel之配置文件.babelrc入门详解
2018/02/22 Javascript
JavaScript实现简单动态进度条效果
2018/04/06 Javascript
关于vue中 $emit的用法详解
2018/04/12 Javascript
微信小程序实现判断是分享到群还是个人功能示例
2019/05/03 Javascript
python3使用tkinter实现ui界面简单实例
2014/01/10 Python
python中正则表达式的使用详解
2014/10/17 Python
Python使用PyCrypto实现AES加密功能示例
2017/05/22 Python
Python实现的简单计算器功能详解
2018/08/25 Python
用Python编写一个简单的CS架构后门的方法
2018/11/20 Python
python带参数打包exe及调用方式
2019/12/21 Python
Python下利用BeautifulSoup解析HTML的实现
2020/01/17 Python
Python Numpy 控制台完全输出ndarray的实现
2020/02/19 Python
使用Python第三方库pygame写个贪吃蛇小游戏
2020/03/06 Python
python中的错误如何查看
2020/07/08 Python
python uuid生成唯一id或str的最简单案例
2021/01/13 Python
美国购车网站:TrueCar
2016/10/19 全球购物
澳大利亚药房在线:ThePharmacy
2017/10/04 全球购物
Expedia西班牙:预订酒店、机票、旅行和廉价度假套餐
2019/04/10 全球购物
党的群众路线教育实践活动动员会主持词
2014/03/20 职场文书
个人股份转让协议书范本
2015/01/28 职场文书
现场施工员岗位职责
2015/04/11 职场文书
2015年导购员工作总结
2015/04/25 职场文书
2015初中政治教学工作总结
2015/07/21 职场文书
毕业生入职感言
2015/07/31 职场文书
小学科学课教学反思
2016/02/23 职场文书
2019年让高校“心动”的自荐信
2019/03/25 职场文书
浅谈PHP7中的一些小技巧
2021/05/29 PHP
ubuntu20.04虚拟机无法上网的问题及解决
2022/12/24 Servers