python实现统计你一共写了多少行代码

程序员要保证一定的代码量就必须勤奋的敲代码,但怎么知道自己一共写了多少代码呢,笔者用python写了个简单的脚本,遍历所有的.java,.cpp,.c文件的行数,但是正如大家所知,java生成了许多代码,所以有许多水分,准确性并不太高,只具有一定的参考价值。

import os
import easygui as g
import sys
import chardet
path = 'C:/'
path='D:/Data/CProject/dataStruct/PAT/PAT'
path='F:/Workspaces'
path2='D:/Data/CProject'
path3='D:/WorkSpace/SoftWare/cocos2d-x-2.2.3/projects'
path4='F:/MyWrokspace'
iforjava=0;
iforcpp=0;
iforc=0;for root, dirs, files in os.walk(path):#files=''.join(files)#print(type(files))for str1 in files:if 'java'==str1.split('.').pop():print("Root = ", root, "dirs = ", dirs, "files = ", str1)count= len(open(root+'\\'+str1,'rU',encoding= 'gbk').readlines())iforjava=iforjava+int(count)print('行数为:',count)for root, dirs, files in os.walk(path2):#files=''.join(files)#print(type(files))for str1 in files:if 'c'==str1.split('.').pop():print("Root = ", root, "dirs = ", dirs, "files = ", str1)count= len(open(root+'\\'+str1,'rU',encoding= 'gbk').readlines())iforc=iforc+int(count)print('行数为:',count)if 'cpp'==str1.split('.').pop():print("Root = ", root, "dirs = ", dirs, "files = ", str1)count= len(open(root+'\\'+str1,'rU',encoding= 'gbk').readlines())iforcpp=iforcpp+int(count)print('行数为:',count)for root, dirs, files in os.walk(path3):#files=''.join(files)#print(type(files))for str1 in files:if 'c'==str1.split('.').pop():print("Root = ", root, "dirs = ", dirs, "files = ", str1)count= len(open(root+'\\'+str1,'rU',encoding= 'gbk').readlines())iforc=iforc+int(count)print('行数为:',count)if 'cpp'==str1.split('.').pop() and len(str1.split('.'))==2 and root.split('\\').pop()!='proj.wp8' and root.split('\\').pop()!='proj.winrt':print("Root = ", root, "dirs = ", dirs, "files = ", str1)count= len(open(root+'\\'+str1,'rU',encoding= 'gbk').readlines())'''file =  open(root+'\\'+str1, "rb")#要有"rb",如果没有这个的话,默认使用gbk读文件。           buf = file.read()   result = chardet.detect(buf)   file = open(root+'\\'+str1,"r",encoding=result["encoding"])count=len(file.readlines())'''iforcpp=iforcpp+int(count)print('行数为:',count)for root, dirs, files in os.walk(path4):#files=''.join(files)#print(type(files))for str1 in files:if 'java'==str1.split('.').pop()and root.split('\\').pop()!='style':print("Root = ", root, "dirs = ", dirs, "files = ", str1)count= len(open(root+'\\'+str1,'rU',encoding= ('gbk' or 'utf-8')).readlines())iforjava=iforjava+int(count)print('行数为:',count)i=iforjava+iforc+iforcpp                       
print('总行数为:',i)
lineall=str(i)g.msgbox("嗨,你一共写了"+lineall+"行代码,要继续加油哦^_^")
g.msgbox("其中\nC语言"+str(iforc)+"行\nC++"+str(iforcpp)+"行\njava"+str(iforjava)+"行")os.system('pause')

在打开文件的时候,老是因为GBK编码与UTF-8编码出错,因为不知道文件的编程格式,所以会以错误的编码方式打开,所说可以通过chardet包解决,但似乎还没有引入到python3中,所以只能手动改。。。。

运行截图如下:

运行
结果
种类

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/494467.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

工业机器人:四大家族垄断全球市场

来源:广发证券在世界工业机器人业界中,以瑞士的ABB、德国的库卡、日本的发那科和安川电机最为著名,并称工业机器人四大家族。全球机器人市场中,四大家族一直占据着重要位置,总市场份额一度超过50%以上。2015年以来由于…

【每日SQL打卡】​​​​​​​​​​​​​​​DAY 9丨平均工资:部门与公司比较【难度困难】

活动介绍: 「数据仓库技术交流群」已经正式启动每日SQL打卡,帮助大家扎实基础,努力工作之余,别忘了自我提升。 欢迎报名和邀请小伙伴参与,一个人可能走得很快,但一群人会走得很远。 🍅题目汇总(…

深度|全面了解一下这个世界上最奇葩的公司:Google!

来源:轮回的刻度2015年8月11日,Google公司架构调整的资讯与分析刷遍了朋友圈。这些数不胜数的文章,几乎都是这样这样一种基调:Google好像做了一件很重大的事情,但是谁也不清楚它为什么这么做。这个问题也困扰着我&…

【每日SQL打卡】​​​​​​​​​​​​​​​DAY 9丨有趣的电影【难度简单】

活动介绍: 「数据仓库技术交流群」已经正式启动每日SQL打卡,帮助大家扎实基础,努力工作之余,别忘了自我提升。 欢迎报名和邀请小伙伴参与,一个人可能走得很快,但一群人会走得很远。 🍅题目汇总(…

一文看懂机器人技术的发展史

来源:传感器技术机器人技术是综合了计算机、控制论、机构学、信息和传感技术、人工智能、仿生学等多学科而形成的高新技术,是当代研究十分活跃,应用日益广泛的领域。机器人应用情况,是一个国家工业自动化水平的重要标志。机器人并…

python实现简单爬虫抓取图片

最近在学习python,正如大家所知,python在网络爬虫方面有着广泛的应用,下面是一个利用python程序抓取网络图片的简单程序,可以批量下载一个网站更新的图片,其中使用了代理IP的技术。 import urllib.request import os import rand…

【每日SQL打卡】​​​​​​​​​​​​​​​DAY 10丨换座位【难度中等】

活动介绍: 「数据仓库技术交流群」已经正式启动每日SQL打卡,帮助大家扎实基础,努力工作之余,别忘了自我提升。 欢迎报名和邀请小伙伴参与,一个人可能走得很快,但一群人会走得很远。 🍅题目汇总(…

5G之后是什么?

来源:IEEE电气电子工程师学会如果你听过有关5G的承诺它可为自动驾驶汽车和沉浸式虚拟现实保驾护航的宣传,估计你很快就会意识到下一代无线网络将需要承载多少数据。但是,工程师们是不是太专注于提供满足数据饥渴型应用程序需要的低延迟网络&a…

javaweb实现验证码功能

在javaweb的用户注册与登陆功能时,有时为了防止漏洞或者大量注册,可以使用验证码功能,下面是验证码的一个简单实现 验证码类 public class ValiImg extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletRespon…

【每日SQL打卡】​​​​​​​​​​​​​​​DAY 10丨买下所有产品的客户【难度中等】

活动介绍: 「数据仓库技术交流群」已经正式启动每日SQL打卡,帮助大家扎实基础,努力工作之余,别忘了自我提升。 欢迎报名和邀请小伙伴参与,一个人可能走得很快,但一群人会走得很远。 🍅题目汇总(…

数据洪流时代的芯片之变

芯片无所不在,没有芯片,就没有现代生活。 图片来源:百度图片来源:科学网摘要:自中兴事件发生以来,对于我国半导体及芯片产业一直存在两种截然相反的认识。自中兴事件发生以来,对于我国半导体及芯…

我没有超能力,我只是用了这10个网站。

🍅 作者主页:不吃西红柿 🍅 简介:CSDN博客专家 & 总榜前十🏆、HDZ核心组成员。欢迎点赞、收藏、评论 🍅 粉丝专属福利:知识体系、面试题库、技术互助、简历模板。文末公众号领取 1、今日热…

干货 | 加速AI发展!一文了解GPU Computing

来源: 启迪之星上海摘要:英伟达的显卡对于游戏达人来说再为熟悉不过,并逐渐融入到我们的日常生活当中。英伟达的显卡对于游戏达人来说再为熟悉不过,并逐渐融入到我们的日常生活当中。近日,世界上第一款“光线追踪”GPU…

图解二叉树的Morris(莫里斯)遍历

二叉树的Morris(莫里斯)遍历 本文参考链接:https://leetcode.cn/problems/binary-tree-preorder-traversal/submissions/490846864/ 文章目录 二叉树的Morris(莫里斯)遍历模板代码前序遍历中序遍历后序遍历 Morris 遍历使用二叉树节点中大量指向 null 的指针&…

瓜分340亿美元物联网芯片半导体市场!机会在这五大行业【附下载】| 智东西内参...

来源:智东西摘要:市场压力之下,物联网为工业、汽车、智慧城市、医疗健康和消费半导体提供了新的解决方案。半导体产业渗透了我们生活中的各个方面,从闹钟、微波炉到手机、笔记本。而现在,物联网技术正在为全球半导体市…

【每日SQL打卡】​​​​​​​​​​​​​​​DAY 11丨产品销售分析 II【难度简单】

活动介绍: 「数据仓库技术交流群」已经正式启动每日SQL打卡,帮助大家扎实基础,努力工作之余,别忘了自我提升。 欢迎报名和邀请小伙伴参与,一个人可能走得很快,但一群人会走得很远。 🍅题目汇总(…

用互联网大脑模型分析滴滴的战略意图和战术失误

作者:刘锋 互联网进化论作者,计算机博士滴滴出行与美国的Uber,本质上都是基于互联网的智能打车软件,让任何拥有家用汽车的司机都可以与出租车司机一样,服务于打车用户。 在滴滴,Uber出世之前的出租车行业…

仅需1/5成本:TPU是如何超越GPU,成为深度学习首选处理器的

作者:Kaz Sato 来源:Google Cloud、机器之心摘要:张量处理单元(TPU)是一种定制化的 ASIC 芯片,它由谷歌从头设计,并专门用于机器学习工作负载。TPU 为谷歌的主要产品提供了计算支持,…

[唐胡璐]Excel技巧 - 使用Excel 2007完成多人协同录入工作

下面我们来介绍下Excel 2007的共享功能。 一、设置共享 启动Excel 2007,打开需要设置共享的工作薄文档,切换到“审阅”菜单选项卡中,单击“更改”组中的“共享工作薄”按钮,打开“共享工作薄”对话框,如下图所示。 …

Android之jni入门

jni即java native interface,使用jni我们可以在JAVA中调用C代码,提高了效率,可以复用代码,可以灵活的应用于各种场景 怎么使用JNI 安装软件 1.NDK 用于将C代码编译成so库 2.CygWin 在windows下模拟linux环境 3.CDT 在eclipse…