# -*- 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統計項目代碼行數
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.