学堂 学堂 学堂公众号手机端

用Python怎么样对代码行数统计,思路和方法是什么

lewis 6年前 (2019-10-10) 阅读数 4 #技术
这篇文章主要介绍“用Python怎么样对代码行数统计,思路和方法是什么”,有一些人在用Python怎么样对代码行数统计,思路和方法是什么的问题上存在疑惑,接下来小编就给大家来介绍一下相关的内容,希望对大家解答有帮助,有这个方面学习需要的朋友就继续往下看吧。




我们经常想要统计项目的代码行数,但是如果想统计功能比较完善可能就不是那么简单了, 今天我们来看一下如何用python来实现一个代码行统计工具。

思路:首先获取所有文件,然后统计每个文件中代码的行数,最后将行数相加.

实现的功能:

统计每个文件的行数;

统计总行数;

统计运行时间;

支持指定统计文件类型,排除不想统计的文件类型;

递归统计文件夹下包括子文件件下的文件的行数;

排除空行;


#coding=utf-8
importos
importtime
basedir='/root/script'
filelists=[]
#指定想要统计的文件类型
whitelist=['php','py']
#遍历文件,递归遍历文件夹中的所有
defgetFile(basedir):
globalfilelists
forparent,dirnames,filenamesinos.walk(basedir):
#fordirnameindirnames:
#getFile(os.path.join(parent,dirname))#递归
forfilenameinfilenames:
ext=filename.split('.')[-1]
#只统计指定的文件类型,略过一些log和cache文件
ifextinwhitelist:
filelists.append(os.path.join(parent,filename))
#统计一个文件的行数
defcountLine(fname):
count=0
forfile_lineinopen(fname).xreadlines():
iffile_line!=''andfile_line!='\n':#过滤掉空行
count+=1
printfname+'----',count
returncount
if__name__=='__main__':
startTime=time.clock()
getFile(basedir)
totalline=0
forfilelistinfilelists:
totalline=totalline+countLine(filelist)
print'totallines:',totalline
print'Done!CostTime:%0.2fsecond'%(time.clock()-startTime)


结果:

[root@pythontabscript]#pythoncountCodeLine.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
totallines:382
Done!CostTime:0.00second
[root@pythontabscript]#

只会统计php和python文件,非常方便。

其实大家还可以在此基础上进行改进,比如:排除注释行等等。


现在大家对于用Python怎么样对代码行数统计,思路和方法是什么的内容应该都有一定的认识了吧,希望这篇能对大家有所帮助。最后,想要了解更多,欢迎关注博信,博信将为大家推送更多相关的文章。
版权声明

本文仅代表作者观点,不代表博信信息网立场。

热门