Python脚本实现代码行数统计代码分享

yipeiwu_com6年前Python基础

之前用bash实现过(/post/61943.htm),不过那个不能在windows下使用,所以就写了个python版,也方便我以后使用……这里就不多介绍了,不懂的google下。

实现代码

复制代码 代码如下:

#!/usr/bin/python

'''
        File      : count.py
        Author    : Mike
        E-Mail    : Mike_Zhang@live.com
'''
import sys,os

extens = [".c",".cpp",".hpp",".h"]
linesCount = 0
filesCount = 0

def funCount(dirName):
    global extens,linesCount,filesCount
    for root,dirs,fileNames in os.walk(dirName):
        for f in fileNames:
            fname = os.path.join(root,f)
            try :
                ext = f[f.rindex('.'):]
                if(extens.count(ext) > 0):
                    print 'support'
                    filesCount += 1
                    print fname
                    l_count = len(open(fname).readlines())
                    print fname," : ",l_count
                    linesCount += l_count
                else:
                    print ext," : not support"
            except:
                print "Error occur!"
                pass


if len(sys.argv) > 1 :
    for m_dir in sys.argv[1:]:       
        print m_dir
        funCount(m_dir)
else :
    funCount(".")       
   
print "files count : ",filesCount
print "lines count : ",linesCount

raw_input("Press Enter to continue")

使用方法
1、针对本目录

复制代码 代码如下:

./count.py

2、统计多个目录
复制代码 代码如下:

./count.py /tmp ~

运行效果

好,就这些了,希望对你有帮助。

相关文章

python使用reportlab画图示例(含中文汉字)

准备工作 开发环境:python2.6,reportlab 准备中文字体文件:simsun.ttc 代码: 复制代码 代码如下:#!/usr/bin/env python2.6#codi...

pygame加载中文名mp3文件出现error

pygame加载中文名mp3文件出现error

前言:  今天刚刚做了个音乐列表,但笔者发现在指定目录mp3文件名为中文时,便出现pygame.error,不能正确加载指定mp3文件.写好的代码不想再改了,来个小测试吧 pygame播...

Pytorch 的损失函数Loss function使用详解

Pytorch 的损失函数Loss function使用详解

1.损失函数 损失函数,又叫目标函数,是编译一个神经网络模型必须的两个要素之一。另一个必不可少的要素是优化器。 损失函数是指用于计算标签值和预测值之间差异的函数,在机器学习过程中,有多种...

python输出带颜色字体实例方法

python输出带颜色字体实例方法

在python开发的过程中,经常会遇到需要打印各种信息。海量的信息堆砌在控制台中,就会导致信息都混在一起,降低了重要信息的可读性。这时候,如果能给重要的信息加上字体颜色,那么就会更加方便...

Python编程中time模块的一些关键用法解析

Python编程中time模块的一些关键用法解析

python中time模块其实不难,就是关系转换有点老记不住,先看下图可以说明几个时间对象的的关系.供参考理解. 黑色细箭头表示输入值,参数 深黄色的粗箭头表示返回值,输出...