最近想要知道以前做過的project有多少行代碼,因爲文件太多,直接手工數效率太低,於是編寫一個python程序用來計算一個project有多少代碼行。
首先,在一個項目中,有很多子文件夾,子文件夾中又包含子文件夾,然後子子文件夾下面有很多java源代碼。我們首先獲取src文件下的子文件夾,然後一直遞歸獲得子文件夾中的文件和文件夾。若得到的是文件,則讀取文件,獲得該文件的代碼行數。
此代碼測試的是java項目的源代碼,所以程序只要獲取java項目的src文件的路徑即可,程序輸出的是此src文件夾下所有源文件的代碼行總和。
具體代碼如下:
#encoding:utf-8
import os
mainpath = 'D:\ProjectFiles\SIMServer\src'
#mainpath = 'D:\ProjectFiles\SIMClient\src'
def getlines(path):
files = os.listdir(path)
theline = 0
for file in files:
#print(file)
newpath = path+"\\"+file
print(newpath)
if os.path.isdir(newpath):
theline += getlines(newpath)
if os.path.isfile(newpath):
data = open(newpath)
num = len(data.readlines());
theline += num
return theline
if __name__ == '__main__':
lines = getlines(mainpath)
print(lines)