python 代码行数统计工具_Python实现一个代码行数统计工具
我们经常想要统计项目的代码行数,但是如果想统计功能比较完善可能就不是那么简单了, 今天我们来看一下如何用python来实现一个代码行统计工具。
思路:首先获取所有文件,然后统计每个文件中代码的行数,最后将行数相加.
实现的功能:
统计每个文件的行数;
统计总行数;
统计运行时间;
支持指定统计文件类型,排除不想统计的文件类型;
递归统计文件夹下包括子文件件下的文件的行数;
排除空行;# coding=utf-8
import os
import time
basedir = '/root/script'
filelists = []
# 指定想要统计的文件类型
whitelist = ['php', 'py']
#遍历文件, 递归遍历文件夹中的所有
def getFile(basedir):
global filelists
for parent,dirnames,filenames in os.walk(basedir):
#for dirname in dirnames:
# getFile(os.path.join(parent,dirname)) #递归
for filename in filenames:
ext = filename.split('.')[-1]
#只统计指定的文件类型,略过一些log和cache文件
if ext in whitelist:
filelists.append(os.path.join(parent,filename))
#统计一个文件的行数
def countLine(fname):
count = 0
for file_line in open(fname).xreadlines():
if file_line != '' and file_line != '\n': #过滤掉空行
count += 1
print fname + '----' , count
return count
if __name__ == '__main__' :
startTime = time.clock()
getFile(basedir)
totalline = 0
for filelist in filelists:
totalline = totalline + countLine(filelist)
print 'total lines:',totalline
print 'Done! Cost Time: %0.2f second' % (time.clock() - startTime)
结果:[root@pythontab script]# python countCodeLine.py
/root/script/test/gametest.php---- 16
/root/script/smtp.php---- 284
/root/script/gametest.php---- 16
/root/script/countCodeLine.py---- 33
/root/script/sendmail.php---- 17
/root/script/test/gametest.php---- 16
total lines: 382
Done! Cost Time: 0.00 second
[root@pythontab script]#
统计php和python文件,非常方便。
其实大家还可以在此基础上进行改进,比如:排除注释行等等。
python 代码行数统计工具_Python实现一个代码行数统计工具相关推荐
- 如果一个数字从左边读和从右边读一样,那么这个数字就是一个回文数,例如32123就是一个回文数。 但事实上, 17在某种意义上也是一个回文数,因为它的二进制(10001)是一个回文数。
//<<<<<<<<<<<<<-往下输入/插入题目---->>>>>>>> ...
- python实现火车票查询工具_Python 实现一个火车票查询的工具
原标题:Python 实现一个火车票查询的工具 作者 sexycoder 本文转载自简书,转载需授权 使用 python 实现一个查询火车票的小工具 主要功能: 输入出发车站,到达车站,时间,然后返回 ...
- python实现杨辉三角思路_Python极简代码实现杨辉三角示例代码
Python极简代码实现杨辉三角示例代码 杨辉三角,又称贾宪三角形,帕斯卡三角形,是二项式系数在三角形中的一种几何排列. 把每一行看做一个list,写一个generator,不断输出下一行的list ...
- python按照每行输出八个_Python/PyCharm的每行输出
我刚开始学习Python.我一直在用R来做数据分析.RStudio的一个优点是我们可以选择一些语句,然后按Ctrl+Enter来执行这些行.RStudio将显示每行的输出.在 例如,这些行的输出:a ...
- python代码说明文档怎么写_Python写完代码怎么用
Python写完代码怎么用 python运行有两种方式,一种是在python交互式命令行下运行:另一种是使用文本编辑器,在命令行中直接运行. 一.命令行与交互式命令行 首先要搞清楚这个命令行的概念. ...
- python exe文件运行依赖环境_python将py代码文件转换为EXE脱离环境运行
如何将python将py代码文件编译成为EXE文件,让其能够脱离python环境独立运行? 方法是有的,下面大家请看如何来操作. 我的环境是VS2017,同时安装了ironpython 一.安装pyi ...
- soapui工具_python接口自动化(四)--接口测试工具介绍(详解)
简介 "工欲善其事必先利其器",通过前边几篇文章的介绍,大家大致对接口有了进一步的认识.那么接下来让我们看看接口测试的工具有哪些. 目前,市场上有很多支持接口测试的工具.利用工具进 ...
- python实训三 编写函数,接收一个字符串,分别统计大写字母,小写字母,数字,其他字符的个数,并以元组的形式返回结果
编写函数,接收一个字符串,分别统计大写字母,小写字母,数字,其他字符的个数,并以元组的形式返回结果 源码: intcount=[] upstrcount=[] lowstrcount=[] other ...
- python判断正整数是否为素数_Python判断一个整数是否为素数
素数的定义:是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数 即只能被1和自己本身整除的数 思路及步骤 给定一个大于2的整数n 令i=2 用n除i,得到余数r 判断r==0是否成立,如 ...
- java tomcat 日志分析工具_设计一个Tomcat访问日志分析工具
常使用web服务器的朋友大都了解,一般的web server有两部分日志: 一是运行中的日志,它主要记录运行的一些信息,尤其是一些异常错误日志信息 二是访问日志信息,它记录的访问的时间,IP,访问的资 ...
最新文章
- 计算机对文字信息交流方式案例,《信息交流的方式》题本梳理_教师资格面试初中信息技术...
- 返回Json数据浏览器带上<pre></pre>标签解决方法
- 不孕不育怎么办?AI帮你提高成功率
- 安装了但是报错找不到_安装MySQL时由于找不到vcruntime140_1.dll,无法继续安装
- Oracle ——如何确定性能差的 SQL
- Terasoluna(中文)
- 单因素方差分析graphpad_python单因素方差分析实例
- 微软官方office教程和微软官方office模板
- 手把手教你虚拟机安装(VMware)、Linux操作系统安装
- 2022 第三届字节跳动青训营,后端专场,课程报名,笔记 纲要
- 大学计算机网课怎么上,大学计算机课程学习路线应该是怎么样的呢?
- P1463 [POI2001][HAOI2007]反素数 题解
- win7网络里面没有计算机,Win7没有无线网络选项教你完美解决
- 双 JK 触发器 74LS112 逻辑功能。真值表_数字电路学习笔记(十一):时序逻辑...
- 【应用】Markdown 在线阅读器
- 大数据必备技能_大数据需要具备的5种必备技能
- java cms 知乎_可能是史上最全面的学习资源 — VUE 开源库篇(二)
- 流量回放repeater的原理分析二:repeater源码分析
- 大学计算机实验六文件管理与磁盘恢复,做“文件管理与磁盘恢复”实验完成以下实验报告表并提交...
- 线性判别分析LDA(linear discriminant analysis)与二次判别分析QDA(quadratic discriminant analysis)
热门文章
- 本科毕业论文EndNote格式
- IDEA打开README.md文件时卡死
- ArcGIS Runtime SDK for Android 加载shp数据,中文乱码问题
- 捷联惯导系统学习7.2(捷联惯导精对准 )
- C#andSql获取当前日期格式
- Apollo添加新的can通信接口的GPS设备
- 前端开发_HTML5_布局-div+css布局
- 视频教程-Linux从入门到精通(全套系列)-Linux
- CTF逆向总结(二)
- 射频微电子学_越老越吃香的射频工程师,如何才能成为一个出色的射频工程师?...