今天接到一个电话面试,对方问我在一个项目中维护了多少行代码。

我懵逼了,从来没有统计过啊,怎么还会有这种需求?

当时一脸茫然的想了想,回答了一个,呃...差不多两千多行吧...感觉很心虚

挂完电话之后大概看了一下最近的一个项目,光其中某一个顶层文件就一千多行了好吧,感觉自己回答的好low

但是又不能自己挨个去统计每个文件中到底有多少行代码啊,还要去掉注释和空格,一个文件一个文件的去计算,这显然不是程序员的风格

所以又不务正业了一下,拿python写了个小程序,用来统计某个目录下一个有多少.v文件,有多少行代码。

当然,子目录也是可以统计的。

用法:把以下代码复制到新建的py文件中,将该文件放到你想统计的工程的根目录,运行一下,统计结果会生成到该PY文件的同一级目录,文件名为"code_line_count.txt"

代码如下:

 # -*- coding: utf-8 -*-
import sys
import os
import codecs exts = ['.v','.vhd']
def read_line_count(fname):
count = 0
with open('code_line_count.txt','a') as f:
f.write('fname:%s\n' % fname)
with open(fname,'r',encoding='utf8') as f:
for file_line in f.readlines():
file_line = file_line.strip()
if not len(file_line) or file_line.startswith('//'):
continue
count += 1
with open('code_line_count.txt','a') as f:
f.write('line count::%s\n' % count)
return count if __name__ == '__main__':
with open('code_line_count.txt','w') as f:
f.write('\n')
count = 0
fcount = 0
for root,dirs,files in os.walk(os.getcwd()):
for f in files:
# Check the sub directorys
print(f)
fname = (root + '\\'+ f).lower()
if os.path.splitext(f)[1]:
ext = f[f.rindex('.'):]
try:
if(exts.index(ext) >= 0):
fcount += 1
c = read_line_count(fname)
count += c
with open('code_line_count.txt','a') as f:
f.write('total count:%s\n' % count)
except:
pass with open('code_line_count.txt','a') as f:
f.write('\n')
f.write('--------------------------------------\n')
f.write('total file count:%d\n' % fcount)
f.write('total line count:%d\n' % count)

部分结果如下:

两万行被我说成了两千行,哭晕在厕所

用python3统计代码行数的更多相关文章

  1. Eclipse统计代码行数

    开发过程中,经常需要统计代码行数,这时可以通过Eclipse的Search功能来实现. 步骤: 1.在Package Explorer中选中需要统计的包: 2.单击菜单Search-->File ...

  2. 在Flash Builder或者Eclipse统计代码行数的方法

    在Flash  Builder或者Eclipse统计代码行数的方法如下图菜单栏--搜索--搜索文件

  3. 【Linux】常用命令-统计代码行数

    公司人员流动大,经常有新的维护任务,交接时喜欢看看新来的模块的代码量,那么问题来了, 如何统计代码行数? 1,最先想到的肯定是 wc. wc -l *.h 将查看[当前目录]下头文件的代码行数,输出结 ...

  4. c#统计代码行数

    小编,已经快学了两年编程了.昨天突发奇想,想统计下这些年到底写过多少行代码,于是做了一个这个小程序来统计代码行数.老规矩,先上图. 比较惭愧,写了两年只有2万多行.那我们还是进入下一项吧. 界面搭建我 ...

  5. 【未解决】对于使用Windows的IDEA进行编译的文件,但无法在Linux系统中统计代码行数的疑问

    在我学习使用Windows的IDEA的过程中,将代码文件转移到Linux虚拟机当中,但无法在Linux系统中统计代码行数. 注意:拷贝进虚拟机的文件均能编译运行. 具体过程如下: root@yogil ...

  6. Visual Studio 统计代码行数

    介绍一种简单的统计代码行数的小技巧, 使用正则表达式,用VS强大的查找功能 b[^:b#/]+.$ 最后结果:

  7. 用django统计代码行数+注释行数

    实现统计代码行数: 1.首先在url.py中配置 from django.conf.urls import url from django.contrib import admin from app0 ...

  8. cloc 统计代码行数工具

    cloc 统计代码行数工具 官网地址:http://cloc.sourceforge.net/ 下载完成后 会生成一个.exe文件 需要修改文件名为 cloc.exe 然后把这个文件拷贝到需要统计的根 ...

  9. python统计代码行数

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

随机推荐

  1. ADF_Advanced ADF系列2_Fusion应用的客制和个性化(Part2)

    2015-02-17 Created By BaoXinjian

  2. BIP_开发案例06_以RB.RDF为数据源BIP.RTF为模板的简单例子(案例)

    2014-05-31 Created By BaoXinjian

  3. Form_Form Builder编译fmb/library/menu方式总结(汇总)

    2014-12-27 Created By BaoXinjian

  4. AP_HZ Party和Supplier、Bank表关系详解

    2014-06-26 Created By BaoXinjian

  5. OAF_EO系列3 - Initialize详解和实现(案例)

    2014-06-14 Created By BaoXinjian

  6. hdu 1561 The more, The Better 背包型树形DP 简单题

    The more, The Better Time Limit: 6000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Oth ...

  7. python(22)总结下最近遇到的编码问题

    最近爬取,或者解析网页是总是遇到编码问题(我的版本:python2.7) 一.常见异常:UnicodeEncodeError: 'ascii' codec can't encode character ...

  8. pedagogical

    在线考试     // '+this+''; }); //alert(错了); $("#ans").html(html); } function clk(obj){ var inp ...

  9. strace命令

    简介 strace常用来跟踪进程执行时的系统调用和所接收的信号. 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核 ...

  10. Xcode 的正确打开方式——Debugging(转载)

    Xcode 的正确打开方式——Debugging   程序员日常开发中有大量时间都会花费在 debug 上,从事 iOS 开发不可避免地需要使用 Xcode.这篇博客就主要介绍了 Xcode 中几种能 ...