用Python代码统计文件夹下文件行数(一秒搞定、一看就会)

今天看到同事在做一个工作,统计一个项目的总代码行数,我想手统计总是累的,不如搞个Python一秒帮他完成下。

目录

一、首先确定你有python

报错解决(1)-- bash: python: command not found...

二、建立如下目录结构

三、sum.py代码

四、运行实测

五、代码关键点分析

六、最后:懒人福音


一、首先确定你有python

(我的是CentOS8环境下默认安装的Python 3.6.8)

python

报错解决(1)-- bash: python: command not found...

我的CentOS8,输入python命令说“bash: python: command not found...

脑补对话:

左脑:怎么可能没有了啦,自带的哎,奇怪?

右脑:要不新安装一个?技术宅不怕装软件

有猫彬:好了,都退下,一定是--软连接没弄!

(更多博文,欢迎来我的博客学习交流https://blog.youkuaiyun.com/have_a_cat

下面建立软连接

1、一般CentOS8自带的Python就在/usr/bin目录下(看下图中有python3 python3.6等)

2、执行命令

ln -s /usr/bin/python3.6 /usr/bin/python

(更多博文,欢迎来我的博客学习交流https://blog.youkuaiyun.com/have_a_cat

3、这时再验证下

python

可见是可以了

二、建立如下目录结构

——|

        |——sum.py

        |——haveacatfiles

注:sum.py是我们的python程序,haveacatfiles中放我们的想统计行数的文件

三、sum.py代码

#/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:Wangj
import os
import time
basedir = './haveacatfiles'
filelists = []
# 指定想要统计的文件类型
whitelist = ['php', 'py', 'c', 'h']
#遍历文件, 递归遍历文件夹中的所有
def getFile(basedir):
    global filelists
    for parent,dirnames,filenames in os.walk(basedir):
        #for dirname in dirnames:
        #    getFile(os.path.join(parent,dirname)) #递归
        for filename in filenames:
            ext = filename.split('.')[-1]
            #只统计指定的文件类型,略过一些log和cache文件
            if ext in whitelist:
                   filelists.append(os.path.join(parent,filename))
#统计一个文件的行数
def countLine(fname):
    count = 0
    for file_line in open(fname).readlines():
        if file_line != '' and file_line != '\n': #过滤掉空行
            count += 1
    print (fname + '----' , count)
    return count
if __name__ == '__main__' :
    startTime = time.clock()
    getFile(basedir)
    totalline = 0
    for filelist in filelists:
        totalline = totalline + countLine(filelist)
    print ('total lines:',totalline)
print ('Done! Cost Time: %0.2f second' % (time.clock() - startTime))

(代码以[菲宇]的博客为基础小幅度修改,代码原文地址:https://blog.youkuaiyun.com/bbwangj/article/details/98060353

四、运行实测

1、进入sum.py和haveacatfiles所在目录

2、将haveacatfiles目录权限设置为777

chmod -R 777 ./haveacatfiles

3、运行sum.py

python sum.py

(更多博文,欢迎来我的博客学习交流https://blog.youkuaiyun.com/have_a_cat

看上图,统计的又快又准确啊(激动~

总共有52行,具体为

|——haveacatfiles———|

                                        |——s.c  49行

                                        |——catfiles——|——ff.php  3行

五、代码关键点分析

因为好奇,还试了试EXECEL,发现不行哎,不能统计带格式的,比如PPT、EXCEL等。

六、最后:懒人福音

打包好的num.py和和测试文件,直接解压就可以了,点这里https://download.youkuaiyun.com/download/have_a_cat/19810695

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值