每天一个小程序—0007题(正则表达式统计)
第 0007 题: 有个目录,里面是你自己写过的程序,统计一下你写过多少行代码。包括空行和注释,但是要分别列出来。
1 #!/usr/bin/env python 2 import re 3 4 def statictis(): 5 code_count = 0 6 empty_count = 0 7 expla_count = 0 8 f = open('test.txt') 9 regex = re.compile(r'#.*') 10 not_expla = re.compile(r'\'.*#.*\'') #在输出的时候可能含有#号 11 for line in f.readlines(): 12 if line.isspace() : empty_count +=1 13 else: code_count += 1 14 result = re.findall(regex, line) 15 not_result = re.findall(not_expla, line) 16 num = len(result) - len(not_result) 17 if num > 0: 18 expla_count += 1 19 print('共有%d行代码' %code_count) 20 print('共有%d行解释' %expla_count) 21 print('共有%d行空行' %empty_count) 22 23 if __name__ == '__main__': 24 statictis()