统计指定路径代码量

 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)
时间: 2024-12-17 23:21:10

统计指定路径代码量的相关文章

MyEclipse下统计工程的代码量

在工程名上右键 > Properties > MyEclipse > update 稍等,Lines of code就会显示出来 该统计不会包含jsp.js.css等文件的代码行数

统计git提交代码量

# a新增行数,d删除行数 git log  --author="`git config --get user.name`" --pretty="%H" --after="2019-01-01" --numstat | awk 'NF==3 {a+=$1; d+=$2} END {printf("+%d, -%d\n", a, d)}' 原文地址:https://www.cnblogs.com/276815076/p/1207

svn代码量统计工具

StatSVN介绍 StatSVN是一个Java写的开源代码统计程序,从statCVS移植而来,能够从Subversion版本库中取得信息,然后生成描述项目开发的各种表格和图表.比如:代码行数的时间线:针对每个开发者的代码行数:开发者的活跃程度:开发者最近所提交的:文件数量:平均文件大小:最大文件:哪个文件是修改最多次数的:目录大小:带有文件数量和代码行数的Repository tree.StatSVN当前版本能够生成一组包括表格与图表的静态HTML文档. StatSVN下载 StartSVN官

(转)通过gitlab统计git提交的代码量

git的代码量大多数都是根据命令行统计,或者根据第三方插件统计.但是都不满足我的需求,因为我们代码都由gitlab管理,于是想到了通过gitlab暴露出来的接口获取数据. 第一步,生成私钥 登录你的gitlab申请私钥private_token 第二步,获取当前用户可见的所有项目(即使用户不是成员) 接口地址:gitlab的地址/api/v4/projects/?private_token=xxx返回参数: [{ "id":219, "description":&q

“代码量统计脚本”

概述 本文从一段统计C/C++程序脚本入手,记录shell脚本常用和重要的知识点. 代码量统计程序 文件名称,count_code_line.sh 123456789101112131415161718192021222324252627282930313233343536 #!/bin/bash # 统计代码行数 去除空格和注释# author: by wangxintang function count_dir(){ total1=0 for input in $* do count=`fi

git代码量统计(转载)

git统计某人代码量 指定用户名版 git log --author="your_name_here" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' 结果示例:added lines:

shell scripts 之 代码量统计

代码统计 code如下: xargs说明:xargs 读入stdin的值, 并默认以空白或者回车作为分隔符,将分割的值作为参数传给后面紧接着的的命令行操作.-d  --delim  : 指定分隔符:-a  : 从文件中读入数据; wc说明:统计指定文件中的字符数,字节数,行数用法格式: wc [options] [filename]options说明:-c  : 统计字节数:-m  : 统计字符数:-w  : 统计字数:-l  : 统计行数:-help  : 帮助: --------------

统计代码量的小程序

比较简陋的统计代码的小工具,  根据自己的需求改改吧. import java.awt.EventQueue; import java.awt.Font; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOExcept

Mac OS X代码量统计程序(Python版)

方便统计各种平台项目的代码量,主要用到了find指令来进行处理的详情点击打开链接: 源代码下载点击打开链接 源代码如下: # -*- coding: utf-8 -*- ''' Created on Jul 18, 2014 @author: Jayhomzhou @note: 计算注释以及代码的总行数(即代码量) ''' import subprocess def countCodes(codePath, fileTypes): typeStrs = '' for ft in fileType