#统计代码量,显示离10W行代码还有多远
#递归搜索各个文件夹
#显示各个类型的源文件和源代码数量
#显示总行数与百分比 import os
import easygui as g #查找文件
def find_file(file_path,target):
os.chdir(file_path)
all_files=os.listdir(os.curdir)
for each in all_files:
#print(each)
fext=os.path.splitext(each)[1]
if fext in target:
lines=calc_code(each) #统计行数
#print("文件%s的代码行数是%d"%(each,lines))
#统计文件数
try:
file_list[fext]+=1
except KeyError:
file_list[fext]=1
#统计源代码行数
try:
source_list[fext] += lines
#print(source_list[fext])
except KeyError:
source_list[fext] = lines
#print(source_list[fext]) if os.path.isdir(each):
find_file(each,target) # 递归调用
os.chdir(os.pardir) #返回上层目录 #统计行数
def calc_code(file_name):
lines=0
with open(file_name,encoding='gb18030',errors='ignore') as f:
print("正在分析文件%s..."%file_name)
try:
for eachline in f:
lines += 1
except UnicodeDecodeError:
pass
print("文件%s分析完毕,包含代码行%d." %(file_name,lines))
return lines #显示结果
def show_result(start_dir):
lines=0
total=0
text='' for i in source_list:
lines=source_list[i]
total+=lines
text+='%s源文件%d个,源代码%d行\n'%(i,file_list[i],lines ) title='统计结果'
msg='目前代码行数:%d\n完成进度:%.2f%%\n距离十万行代码还差%d行'%(total,total/1000,100000-total)
g.msgbox(msg,title,text) #file_path=input("要查找的路径; ") # C:\\Users\\54353\\PycharmProjects\\untitled
target=['.py','.java','.c','.cc','.cpp'] #定义需要查找的源文件类型
file_list={}
source_list={}
g.msgbox('请打开您的文件夹','统计代码量')
path=g.diropenbox('请选择您的代码库:') find_file(path,target)
show_result(path)

Python 统计代码量的更多相关文章

  1. Git 常用命令和统计代码量

    摘要 分享Git日常操作中常用的命令,分享如何统计在项目中贡献的代码量. 下面列出Git bash常用命令. 1. git clone **(项目地址) 克隆一个git项目到本地,将git项目拉取到本 ...

  2. git 统计代码量 shell脚本

    #!/bin/bash # 统计代码量 # 使用方法: sh gitstat.sh "2017-11-01" "2017-11-30" "JamKon ...

  3. Python 统计代码行

    正在学习 Python, 做了个统计代码行的功能, 参考了网上很多前辈的帖子,添加了感觉还是比较实用的功能, 只是windows下测试了,而且代码文件编码形式是 utf-8的. 如果使用其它编码形式的 ...

  4. Python入门之用Python统计代码行

    Pycharm每天都要写很多代码,如何统计每天的代码行数呢?作为一个目标十万行的coder,要想想办法! 题目:有个目录,里面是你自己写过的程序,统计一下你写过多少行代码.包括空行和注释,但是要分别列 ...

  5. 利用python统计代码行

    参加光荣之路测试开发班已三月有余,吴总上课也总问“ 咱们的课上了这么多次了大家实践了多少行代码了?”.这里是一个一脸懵逼的表情.该怎么统计呢?一个个文件数当然不可取,能用代码解决的事咱们坚决不动手.最 ...

  6. python统计代码行数

    以前写了一个java的统计代码行数的小程序,最近在看python,于是就参考前辈的代码,写了一个统计文件夹下面各种程序的代码的小程序,这里贴出来供大家参考 参考链接: https://gist.git ...

  7. window7下statsvn统计代码量

    下载statsvn:http://www.statsvn.org/ 将下载后的statsvn.jar放到d:\svn目录下; 打开cmd窗口切换到需要统计代码的项目目录如:d:\project\web ...

  8. python统计代码总行数(代码行、空行、注释行)

    我们在工作或学习代码的过程中,经常会想知道自己写了多少行代码,今天在项目环境写了个脚本统计了项目代码的数量. 功能: 1.统计代码总行数 2.统计空行数 3.统计注释行数 # coding=utf-8 ...

  9. 007-使用python统计代码行数,空行以及注释

    # 自己写过的程序,统计一下你写过多少行代码.包括空行和注释,但是要分别列出来 1.打开文件方法 1.1 以读文件的模式打开一个文件对象,使用Python内置的open()函数,传入文件名和标示符 f ...

随机推荐

  1. springmvc搭建环境时报No mapping found for HTTP request with URI [/exam3/welcome] in DispatcherServlet with name 'spring2'

    项目是使用spring MVC (1)在浏览器中访问,后台总报错: No mapping found for HTTP request with URI [/exam3/welcome] in Dis ...

  2. Java设计模式(22)命令模式(Command模式)

    Command模式是最让我疑惑的一个模式,我在阅读了很多代码后,才感觉隐约掌握其大概原理,我认为理解设计模式最主要是掌握起原理构造,这样才对自己实际编程有指导作用.Command模式实际上不是个很具体 ...

  3. Error:Error converting bytecode to dex: Cause: com.android.dex.DexException: Multiple dex files define Lcom/lidroid/xutils/task/TaskHandler;

    Error:Error converting bytecode to dex: Cause: com.android.dex.DexException: Multiple dex files defi ...

  4. R中ifelse、which、%in%的用法

    R中ifelse.which.%in%的用法 (2014-02-08 13:54:08)标签: 教育 在R学习过程中,遇到了ifelse.which.%in%,下面分别举例,说明他们的用法.1.ife ...

  5. html传值及接收传值

    传值:url?para1=value1&para2=value2 接收传值: <script type="text/javascript"> function ...

  6. SpringCloud微服务部署

    https://blog.csdn.net/weixin_36397925/article/details/79496657 https://blog.csdn.net/forezp/article/ ...

  7. TestNG 入门指导——理解testng.xml执行/不执行某个包,某个类,某个方法

    这一篇我们主要学习如下几个知识点: ⑴关于testng.xml ⑵创建一个测试套件 ⑶执行testng.xml ⑷在测试套件中创建多个测试用例 ⑸在用例中增加class,packages, metho ...

  8. Android 8 AudioPolicy 分析

    AudioTrack最终会调用AudioPolicyManager::getOutput(); frameworks\av\services\audiopolicy\managerdefault\Au ...

  9. VIM的自动补全

    自动补全可以很好的提高输入的效率: 触发自动补全的方法总结: 可供弹出式菜单的使用的命令: 其它再补充:

  10. SciTE配置信息

    超强文本编辑器SciTE配置方法详细实例 转载 2006年12月28日 17:07:00 标签: 文本编辑 / 文档 / 语言 / html / python / api 32800 关于scite文 ...