Chinaunix首页 | 论坛 | 博客
  • 博客访问: 104315
  • 博文数量: 21
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 231
  • 用 户 组: 普通用户
  • 注册时间: 2014-12-16 16:23
文章分类

全部博文(21)

文章存档

2017年(3)

2016年(9)

2015年(9)

我的朋友

分类: Python/Ruby

2015-08-26 13:55:16

写一个程序统计代码行数,可以统计信息包括:代码行数,注释行数(代码尾部的注释也算),空白行数。并以红,黄,蓝三种颜色分别输出


点击(此处)折叠或打开

  1. #!/usr/bin/python
  2. # coding=utf-8

  3. import os

  4. from termcolor import colored


  5. def parse_file(filename):
  6.     notes_count = 0
  7.     code_count = 0
  8.     blank_count = 0
  9.     with open(filename) as f:
  10.         for line in f:
  11.             if line == '\n':
  12.                 blank_count += 1
  13.             elif line.startswith('#'):
  14.                 notes_count += 1
  15.             else:
  16.                 code_count += 1
  17.     notes_count = colored(notes_count, 'red')
  18.     code_count = colored(code_count, 'yellow')
  19.     blank_count = colored(blank_count, 'blue')
  20.     return notes_count,code_count,blank_count


  21. def collect_pyfile(path, depth):
  22.     file_list = []

  23.     def recurse_dir(_path, _depth):
  24.         if _depth < 1:
  25.             return None
  26.         for d in os.listdir(_path):
  27.             full_path = os.path.join(_path, d)
  28.             if os.path.isfile(full_path):
  29.                 if full_path[-3:] == '.py':
  30.                     file_list.append(full_path)
  31.             else:
  32.                 recurse_dir(full_path, _depth-1)
  33.     recurse_dir(path, depth)
  34.     return file_list


  35. if __name__ == '__main__':
  36.     path = raw_input('please input path: ')
  37.     depth = int(raw_input('please input depth: '))
  38.     for pyfile in collect_pyfile(path, depth):
  39.         print pyfile, '注释行数:%s代码行数:%s空白行数:%s' % parse_file(pyfile)

阅读(2278) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~