Before I know CLOC, SourceCounter or Ohcount, I write this script.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# Created by Leon <i@leons.im> in 2012
# This code is for Python 2.x
import os, sys
exts = ['.py', '.ini', '.c', '.h']
count_empty_line = True
here = os.path.abspath(os.path.dirname(sys.argv[0]))
def read_line_count(fname):
count = 0
for line in open(fname).readlines():
if count_empty_line or len(line.strip()) > 0:
count += 1
return count
if __name__ == '__main__':
line_count = 0
file_count = 0
for base, dirs, files in os.walk(here):
for file in files:
# Check the sub directorys
if file.find('.') < 0:
continue
ext = (file[file.rindex('.'):]).lower()
try:
if exts.index(ext) >= 0:
file_count += 1
path = (base + '/'+ file)
c = read_line_count(path)
print ".%s : %d" % (path[len(here):], c)
line_count += c
except:
pass
print 'File count : %d' % file_count
print 'Line count : %d' % line_count
Copy and save the script as analytics.py and modify the exts
list to include all the file extensions in your project, and put this script in your source code folder, then run:
python analytics.py