今天看到同事在做一个工作,统计一个项目的总代码行数,我想手统计总是累的,不如搞个Python一秒帮他完成下。
目录
报错解决(1)-- bash: python: command not found...
一、首先确定你有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