详细题目在https://github.com/Yixiaohan/show-me-the-code上。此次是0007题,统计文件夹内程序文件的行数。
# -*- coding: UTF-8 -*-
import os
import re
#将文件夹中的每个文件目录放入一个列表中
def getFile(directory):
list = os.listdir(directory)
fileList = []
for item in list:
filepath = os.path.join(directory,item)
if not os.path.isdir(filepath):
fileList.append(filepath)
return fileList
#对于每个程序文件中,读取每一行,如果是换行符则空行数量加1,有#号存在则注释行数加1,其余为普通代码数量加1
def Calculator(fileList):
null = 0
annotation = 0
normal = 0
for item in fileList:
with open(item,'r') as file:
for statement in file.readlines():
if statement == "\n":
null += 1
elif '#' in statement:
annotation += 1
else:
normal += 1
print 'The total lines is:'+ str(null+annotation+normal)
print 'The null statement is:'+ str(null)
print 'The annotation is:'+ str(annotation)
print 'The statement is:'+ str(normal)
list = getFile('program')
Calculator(list)