import os import fnmatch def Walk(root='.', recurse=True, pattern='*'): """ Generator for walking a directory tree. Starts at specified root folder, returning files that match our pattern. Optionally will also recurse through sub-folders. """ for path, subdirs, files in os.walk(root): for name in files: if fnmatch.fnmatch(name, pattern): yield os.path.join(path, name) ifnot recurse: break def LOC(root='', recurse=True): """ Counts lines of code in two ways: maximal size (source LOC) with blank lines and comments minimal size (logical LOC) stripping same Sums all Python files in the specified folder. By default recurses through subfolders. """ count_mini, count_maxi = 0, 0 for fspec in Walk(root, recurse, '*.py'): skip = False for line in open(fspec).readlines(): count_maxi +=1 line = line.strip() if line: if line.startswith('#'): continue if line.startswith('"""'): skip =not skip continue ifnot skip: count_mini +=1 return count_mini, count_maxi
import osimport fnmatchdef Walk(root=., recurse=True, pattern=*): """ Generator for walking a directory tree. Starts at specified root folder, returning files that match