''' Created on 09-Feb-2017 @author: Kumar Swapnil ''' import matplotlib.pyplot as plt import os my_documents_path = r"C:\Users\vikram singh\Documents" language = [1,2,3,4] count = [] dir_list = [f.path for f in os.scandir(path=r'C:\Users\vikram singh\Documents') if f.is_dir()] dir_list.append(my_documents_path) for sub_dir in dir_list: print(sub_dir) num_lines = [0,0,0,0] print(len(dir_list)) for dir_name in dir_list: cppfileslist = [] pythonfieslist = [] cfileslist = [] jsfileslist = [] for file_name in os.listdir(dir_name): if file_name.endswith(".cpp"): cppfileslist.append(file_name) elif file_name.endswith(".py"): pythonfieslist.append(file_name) elif file_name.endswith(".c"): cfileslist.append(file_name) elif file_name.endswith(".js"): jsfileslist.append(file_name) ''' now scan all lists one by one and count lines of code check if a line is comment or not.. and exclude it also check for a blank line :) ''' for file_name in cppfileslist: print(file_name) x = dir_name+ '\\' + file_name print(x.__str__()) num_lines[0] = num_lines[0] + sum(1 for line in open(x,encoding='utf8')) print(num_lines) #count.append(num_lines) #num_lines = 0 for file_name in pythonfieslist: print(file_name) num_lines[1] = num_lines[1] + sum(1 for line in open(dir_name+ '\\' + file_name,encoding='utf8')) print(num_lines) #count.append(num_lines) #num_lines = 0 for file_name in cfileslist: print(file_name) num_lines[2] = num_lines[2] + sum(1 for line in open(dir_name+ '\\' + file_name,encoding='utf8')) print(num_lines) #count.append(num_lines) #num_lines = 0 for file_name in jsfileslist: print(file_name) num_lines[3] = num_lines[3] + sum(1 for line in open(dir_name+ '\\' + file_name,encoding='utf8')) print(num_lines) #count.append(num_lines) #plotting starts plt.scatter(language,num_lines) plt.xlabel('Language') plt.ylabel('Lines Of Code') plt.xticks([1,2,3,4],['C++','Python','C','Javascript']) plt.show()