每天一个小程序—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()