# -*- coding: utf-8 -*-
"""
Created on Sat Mar 28 10:06:36 2020
@author: Hi Daniel
"""
import os
import time
# 统计项目代码数量
class TotalCodeLines():
def __init__(self, basedir,filetype):
self.basedir = basedir
self.filelists = []
self.filetype = filetype
#遍历文件, 递归遍历文件夹中的所有
def readfile(self, basedir, filetype):
global filelists
for parent,dirnames,filenames in os.walk(self.basedir):
for filename in filenames:
ext = filename.split('.')[-1]
#只统计指定的文件类型,略过一些log和cache文件
if ext in self.filetype:
self.filelists.append(os.path.join(parent,filename))
return self.filelists
#统计一个文件的行数
def countline(self, fname):
count = 0
for file_line in open(fname,'r',encoding = 'utf-8').readlines():
if file_line != '' and file_line != '\n': #过滤掉空行
count += 1
print(fname + '----'+'{0} {1}'.format(count,'lines'))
return count
# 统计所有文件的代码行数
def alllines(self, filelists):
totalline = 0
for filelist in filelists:
totalline = totalline + self.countline(filelist)
return totalline
if __name__ == '__main__' :
start_time = time.time()
# 需要统计的文件夹或者文件
basedir = r'Your Project Path'
# 指定想要统计的文件类型
filetype = ['m', 'py']
# 调用类
totalline = TotalCodeLines(basedir, filetype)
file = totalline.readfile(basedir,filetype)
totalline = totalline.alllines(file)
print('total lines: {0} {1}'.format(totalline,'lines'))
end_time = time.time()
print('Done! Cost Time: %0.2f seconds' % (start_time - end_time))
Python统计项目代码行数
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.