File: wcall.py
##################################
# count lines in all source files
# in tree; os.path.walk version
##################################
import os, sys
allLines = allFiles = 0
allExts = ['.py', '.pyw', '.cgi', '.html', '.c', '.cxx', '.h', '.i']
def makeSums(keys):
sums = {}
for key in keys: sums[key] = 0
return sums
allSums = makeSums(allExts)
def sum(dir, file, ext):
global allFiles, allLines
print file
fname = os.path.join(dir, file)
lines = open(fname).readlines()
allFiles = allFiles + 1
allLines = allLines + len(lines)
allSums[ext] = allSums[ext] + 1 # or += 1
def wc(ignore, dir, fileshere):
for file in fileshere:
for ext in allExts:
if file[-len(ext):] == ext: # or .endswith()
sum(dir, file, ext)
break
if __name__ == '__main__':
os.path.walk(sys.argv[1], wc, None) # cmd arg=root dir
print '-'*80
print 'Files=>', allFiles, 'Lines=>', allLines
print allSums