一些公司,在提交代碼時,都會有一些檢查代碼的工具。今天,主要介紹一下如何使用python來統計項目中的代碼行數。因爲本人主要還是使用Java進行開發,Python水平還在初級階段。因此,我先從最簡單的腳本寫起。相信大家都用過一些工具統計自己項目中的代碼量,今天,我將介紹一下如何使用Python腳本統計AndroidStudio中Java代碼的行數。
相比起以前的博客,我會花很多時間去說一下背景。這次的背景比較簡單,就是我在公司裏提交代碼的時候,會有一些工具對我的代碼進行一些檢查,我覺得很有意思。因此,想起自己雖然python水平也就入門,但是可以看懂一些簡單的語法,看看自己是否能寫一個腳本去統計自己一些小的個人項目中的代碼行數。因此,就有了今天的這篇博客。好,那我們話不多說,先把代碼丟出來:
# -*- coding:utf-8 -*-
import os
import time
# 獲取當前項目目錄
projectDir = os.getcwd()
fileLists = []
# 文件類型
typeList = ['java']
# 遍歷項目中的文件夾
def getFile(projectDir):
global fileLists
for parent,dirNames,fileNames in os.walk(projectDir):
for filename in fileNames:
ext = filename.split('.')[-1]
if ext in typeList:
fileLists.append(os.path.join(parent,filename))
#統計一個文件中代碼的行數
def countLine(fileName):
count = 0
for file_line in open(fileName).readlines():
# 不統計空白行
if file_line != '' and file_line != '\n':
count += 1
print (fileName + '----' , count)
return count
if __name__ == '__main__' :
startTime = time.clock()
getFile(projectDir)
totalLines = 0
for typeList in fileLists:
totalLines = totalLines + countLine(typeList)
print ('Total Lines:',totalLines)
print ('Job Finish! Cost Time: %0.2f second' % (time.clock() - startTime))
以上就是全部的py代碼,我已經對主要的代碼都增加了代碼註釋,相信有python基礎的朋友都能看懂。那麼,如何使用上面的腳本統計項目中Java代碼行數呢?接下來,讓我們一步步去實現:
首先,把py文件放到需要統計java代碼的文件夾下,例如我放到了如下圖所示的文件夾下:
在AndroidStudio的命令行下,進入到此文件夾:
cd app/src/main/java
然後執行py文件:
python CodeLineNum.py
如下是統計結果的部分截圖:
最後,簡單總結一下,通過上面的代碼和操作,我們可以統計項目中某個模塊的Java代碼行數。當然,修改其他的後綴名(例如cpp、xml、py等),也可以統計其他類型代碼的行數。綜合來講,python還是挺香的一門語言,希望自己可以利用python完成一些可以提高自己工作效率的腳本,加油!