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

参考链接:

https://gist.github.com/linmingren/58d14b5a5fa24e6410af

http://www.cnblogs.com/MikeZhang/archive/2012/08/23/linesCountPython20120823.html

1.运行效果:

2.主要的包,函数:

os.path

os.walk(path)

os.path.split(path)[1]

3..代码:

# -*- coding: utf-8 -*-

"""
this is the moduler to count code lines in the given directory.
It ignore blank line but counts the note line.such as #...,//...
__author__ = 'R'
time: 2017.4.21
""" import sys,os filetype = ['.c', '.cpp', '.java', '.py', '.h']
linescount = 0
filescount = 0
c_count = 0
cpp_count = 0
java_count = 0
py_count = 0
h_count = 0 defaultPath = 'D://programmer/python' def countLines(filepath):
global c_count,cpp_count,java_count,py_count,h_count
lines = 0
#这里打开文件经常有无法编码或者无法解码的问题;
with open(filepath, 'rb') as f:
temp = os.path.split(filepath)[1]
for line in f:
if line.strip() != '':
if temp.endswith(filetype[0]):
c_count += 1
lines += 1
elif temp.endswith(filetype[1]):
cpp_count += 1
lines += 1
elif temp.endswith(filetype[2]):
java_count += 1
lines += 1
elif temp.endswith(filetype[3]):
py_count += 1
lines += 1
elif temp.endswith(filetype[4]):
h_count += 1
lines += 1
#这样会导致将所有文件的行数都统计进去了,比如.txt,二进制;
#lines += 1
#print(line)
return lines def countFilesLines(path):
lines = 0
global linescount,filescount
for rootpath, subdirs, filenames in os.walk(path):
for f in filenames:
lines += countLines(os.path.join(rootpath, f))
filescount += 1
linescount = lines
return
if __name__ == '__main__':
print ('counting...')
if len(sys.argv) >= 2:
countFilesLines(sys.argv[1])
else:
countFilesLines(defaultPath)
print ("total files: " , str(filescount))
print ('total code lines: ' + str(linescount))
print ('total c conde lines: ' + str(c_count))
print ('total cpp code lines: ' + str(cpp_count))
print ('total java code lines: ' + str(java_count))
print ('total python code lines: ' + str(py_count))
print ('total .h code lines: ' + str(h_count))

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

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

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

  2. 利用python统计代码行

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

  3. Eclipse统计代码行数

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

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

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

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

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

  6. c#统计代码行数

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

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

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

  8. Visual Studio 统计代码行数

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

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

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

随机推荐

  1. python3----转换大小写(upper lower capitalize and title)

    和其他语言一样,Python为string对象提供了转换大小写的方法:upper() 和 lower().还不止这些,Python还为我们提供了首字母大写,其余小写的capitalize()方法,以及 ...

  2. day22模块和包

       一.模块 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1 使用python编写的代码(. ...

  3. centos7下挂载U盘和移动硬盘

    挂载U盘 1.使用fdisk -l命令查看磁盘情况 [root@localhost ~]# fdisk -l 磁盘 /dev/sda:1000.2 GB, 1000204886016 字节,19535 ...

  4. java中通过配置文件的方式(Jedis驱动)使用Redis

    在java中使用Redis,实际上是将Redis的一些命令封装到Jedis的实体类中,然后进行调用.

  5. hdu5646(数学)

    小学数学,脑补 一开始看到这题,猜了个规律想写但是我是拒绝的. 因为我无法证明. 好吧,主要还是小学数学没学好吧. 要理解这题,首先得搞懂一个重要问题.假设C=A+B,怎样选择两个正整数使得A*B最大 ...

  6. 160822、关于javascrip ==(等号) 和===(恒等)判断

    说明 在JavaScript中,下面的值被当做假(false),除了下面列出的值,都被当做真(true): false null undefined 空字符串 数字 0 NaN //属性是代表非数字值 ...

  7. javascript数组遍历for与for in区别详解

    js中遍历数组的有两种方式 复制代码代码如下: var array=['a']//标准的for循环for(var i=1;i<array.length;i++){    alert(array[ ...

  8. python——random模块

    用法示例: import random # 1)随机小数 print(random.random()) # 获取大于0且小于1 之间的小数 random.random() print(random.u ...

  9. Python3.6全栈开发实例[022]

    22.完成彩票36选7的功能. 从36个数中随机的产生7个数. 最终获取到7个不重复的数据作为最终的开奖结果.随机数: from random import randintrandint(0, 20) ...

  10. Js用户引导插件intro

    1.demo直接贴上来了,有什么不懂的,直接去官网上看,地址:https://introjs.com/. 2.这个intro插件的版本是v2.7.0,复制下来代码,引入库应该直接可以运行. 3.点评一 ...