博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python 统计代码量
阅读量:6821 次
发布时间:2019-06-26

本文共 1973 字,大约阅读时间需要 6 分钟。

1 #统计代码量,显示离10W行代码还有多远 2 #递归搜索各个文件夹 3 #显示各个类型的源文件和源代码数量 4 #显示总行数与百分比 5  6 import os 7 import easygui as g 8  9 #查找文件10 def find_file(file_path,target):11     os.chdir(file_path)12     all_files=os.listdir(os.curdir)13     for each in all_files:14         #print(each)15         fext=os.path.splitext(each)[1]16         if fext in target:17             lines=calc_code(each) #统计行数18             #print("文件%s的代码行数是%d"%(each,lines))19             #统计文件数20             try:21                 file_list[fext]+=122             except KeyError:23                 file_list[fext]=124             #统计源代码行数25             try:26                 source_list[fext] += lines27                 #print(source_list[fext])28             except KeyError:29                 source_list[fext] = lines30                 #print(source_list[fext])31 32 33 34         if os.path.isdir(each):35             find_file(each,target) # 递归调用36             os.chdir(os.pardir) #返回上层目录37 38 39 #统计行数40 def calc_code(file_name):41     lines=042     with open(file_name,encoding='gb18030',errors='ignore') as f:43         print("正在分析文件%s..."%file_name)44         try:45             for eachline in f:46                 lines += 147         except UnicodeDecodeError:48             pass49         print("文件%s分析完毕,包含代码行%d." %(file_name,lines))50     return lines51 52 53 #显示结果54 def show_result(start_dir):55     lines=056     total=057     text=''58 59     for i in source_list:60         lines=source_list[i]61         total+=lines62         text+='%s源文件%d个,源代码%d行\n'%(i,file_list[i],lines )63 64     title='统计结果'65     msg='目前代码行数:%d\n完成进度:%.2f%%\n距离十万行代码还差%d行'%(total,total/1000,100000-total)66     g.msgbox(msg,title,text)67 68 #file_path=input("要查找的路径; ")  # C:\\Users\\54353\\PycharmProjects\\untitled69 target=['.py','.java','.c','.cc','.cpp']  #定义需要查找的源文件类型70 file_list={}71 source_list={}72 g.msgbox('请打开您的文件夹','统计代码量')73 path=g.diropenbox('请选择您的代码库:')74 75 find_file(path,target)76 show_result(path)

 

转载地址:http://parzl.baihongyu.com/

你可能感兴趣的文章
【对讲机的那点事】你知道MOTOTRBO对讲机的那些功能需要购买吗?
查看>>
不得不说的Ajax
查看>>
拥抱JPA规范
查看>>
Linux的正则表达式grep,egrep
查看>>
判断是长按还是点击事件
查看>>
MariaDB CEO 痛斥云厂商对开源的无尽掠夺,从不回馈社区
查看>>
MySQL数据库优化技巧
查看>>
文档元素
查看>>
TensorFlow VS TensorFlow Mobile VS TensorFlow Lite
查看>>
Rust 1.34.0 发布
查看>>
《利用Python进行数据分析·第2版》第10章 数据聚合与分组运算
查看>>
flask处理网页时间
查看>>
怎么把iphoneX手机备忘录同步到OPPOFindX手机中
查看>>
使用vmware vconverter从物理机迁移系统到虚拟机P2V(多图)
查看>>
手把手教你在Mac中搭建iOS的 React Native环境
查看>>
蚂蚁金服副CTO胡喜ATEC上宣布:蚂蚁金服技术全面开放
查看>>
重读算法导论之算法基础
查看>>
《Linux命令行与shell脚本编程大全》第九章 安装软件程序
查看>>
PHP+MySQL实现对一段时间内每天数据统计优化操作实例
查看>>
openlayers3 pointermove onmousemove 显示feature信息
查看>>