码迷,mamicode.com
首页 > 其他好文 > 详细

统计指定路径代码量

时间:2017-02-19 23:35:12      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:存在   文件   open   pre   tle   line   try   .text   UI   

 1 import easygui as g
 2 import os
 3 
 4 def show_result(path):
 5     text=‘‘
 6     total=0
 7     for each_ext in ext_dict:
 8         total += ext_dict[each_ext]
 9         text += 【%s】源文件有【%d】个,代码【%d】行\n% (each_ext,ext_list[each_ext],ext_dict[each_ext])
10 
11         msg = 您目前累计编写了【%d】行代码,完成进度:【%.2f%%】,离10万行代码还差【%d】,请继续努力! % (total,total/1000,100000-total)
12         title =统计结果
13     g.textbox(msg,title,text)
14         
15 
16 def calc_line(file_name):
17     lines = 0
18     with open(file_name) as f:
19         try:
20             for each_line in f:
21                 lines+=1
22         except UnicodeDecodeError:
23             pass #遇到不兼容情况则继续
24     return lines #返回计算的行数
25 
26 
27 def search_file(start_dir):
28     os.chdir(start_dir)
29 
30     for each_file in os.listdir(os.curdir):#遍历当前目录下的每一个文件
31 
32         if os.path.isfile(each_file):#如果是一个文件
33             ext = os.path.splitext(each_file)[1]#取其扩展名
34             if ext in target:# 如果扩展名在目标中
35                 lines = calc_line(each_file)#打开这个文件并计算行数
36 
37                 try:
38                     ext_dict[ext] += lines #扩展名的字典 如果扩展名不存在则新建一个并且赋值lines
39                 except KeyError:
40                     ext_dict[ext] = lines
41                 try:
42                     ext_list[ext] += 1 #记录源文件有多少个,区别于记录多少行的字典
43                 except KeyError:
44                     ext_list[ext] = 1
45 
46         if os.path.isdir(each_file):#如果是目录,则创造递归
47             search_file(each_file)
48             os.chdir(os.pardir)#递归完成返回上一层目录
49 
50 
51 def choice_path():
52     msg = 请选择您的代码库
53     title = 浏览您的文件夹
54     
55     path = g.diropenbox(msg,title)
56     return path
57 
58 
59 
60 target=[.py,.c]
61 
62 ext_dict={}
63 ext_list={}
64 path = choice_path()
65 search_file(path)
66 show_result(path)

 

统计指定路径代码量

标签:存在   文件   open   pre   tle   line   try   .text   UI   

原文地址:http://www.cnblogs.com/themost/p/6417786.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!