python统计代码行数_使用Python简单快速实现统计代码行数
1.程序簡介
這個程序使用來統計文件夾中的所有文件中非空行的行數。代碼比較簡單易懂,使用遞歸的方式進行文件夾中所有文件的獲取。
2.效果圖
圖2-1
圖2-1 為要測試文件夾的內容,下面來運行一下程序
圖2-2
運行程序之后返回文件名和對應的行號,并返回所有文件的總行號,和文件總數量。
3.程序代碼
#!-*-coding:utf-8-*-
#author:Terry Lee
#date:2015/11/16
#
#description:this script is used to exec omret coding lines.
#usage:first param is dir path
# second param is exclude files array
import os
TOTAL = 0 #total line number
FILENUM = 0 #total file number
class execLine(object):
#----get all files path under the specified dir-----
def run(self,dirPath,excludeFiles):
for fileordir in os.listdir(dirPath):
path = os.path.join(dirPath,fileordir)
if os.path.isfile(path):
#----exclude the specified files------
for excludeFile in excludeFiles:
if fileordir != excludeFile:
line = self.execFileLines(path)
global TOTAL
TOTAL += line
global FILENUM
FILENUM += 1
print str(FILENUM)+': [filename] '+fileordir+(' '*(50-len(fileordir)))+'[line] '+str(line)
elif os.path.isdir(path):
#----if file is dir,use recursion----
self.run(path,excludeFiles)
#----exec the lines of file,execpt blank line----
def execFileLines(self,filepath):
line = len([ln for ln in open(filepath, 'rt') if ln.strip()])
return line
def showTotal(self):
print "\ntotal file number: "+str(FILENUM)+"\ntotal lines: "+str(TOTAL)
execLine = execLine()
execLine.run('C:\\Users\\zhoufm\\Desktop\\test',[''])
execLine.showTotal()
代碼的話我就不多做解釋了,相信小伙伴們都能看的懂的,有疑問或者改進的建議也可以評論我。
在腳本的最后調用run方法進行統計。第一個參數為文件夾路徑,就是要統計的項目的文件夾,第二個參數是需要過濾掉的文件名,你們當然不希望把框架自動生成的文件還有一些圖片啊什么的都統計進去吧。:)
測試一下過濾功能,修改下面的代碼
execLine.run('C:\\Users\\zhoufm\\Desktop\\test',['1.txt'])
可以發現<1.txt>這個文件被過濾掉了,最后筆者在print文件名和行號的時候加了一個小trick,使得輸出看起來比較舒服,我們換一個內容多一些的文件夾試一下。
這樣看起來就比較輕松啦。
總結
以上是生活随笔為你收集整理的python统计代码行数_使用Python简单快速实现统计代码行数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HTTP中的URL长度限制
- 下一篇: Linux下彻底卸载mysql