python统计代码总行数(代码行、空行、注释行)

我们在工作或学习代码的过程中,经常会想知道自己写了多少行代码,今天在项目环境写了个脚本统计了项目代码的数量。

功能:

1.统计代码总行数

2.统计空行数

3.统计注释行数

# coding=utf-8
import os
#定义代码所在的目录
base_path = ‘/home/yhl/workspace/xtp_test‘

#在指定目录下统计所有的py文件,以列表形式返回
def collect_files(dir):
    filelist = []
    for parent,dirnames,filenames in os.walk(dir):
         for filename in filenames:
             if filename.endswith(‘.py‘):
                 #将文件名和目录名拼成绝对路径,添加到列表里
                 filelist.append(os.path.join(parent,filename))
    return filelist

#计算单个文件内的代码行数
def calc_linenum(file):
    with open(file) as fp:
        content_list = fp.readlines()
        code_num = 0  #当前文件代码行数计数变量
        blank_num = 0  #当前文件空行数计数变量
        annotate_num =0  #当前文件注释行数计数变量
        for content in content_list:
            content = content.strip()
            # 统计空行
            if content == ‘‘:
                blank_num += 1
            # 统计注释行
            elif content.startswith(‘#‘):
                annotate_num += 1
            # 统计代码行
            else:
                code_num += 1
    # 返回代码行数,空行数,注释行数
    return code_num,blank_num,annotate_num

if __name__ == ‘__main__‘:
    files = collect_files(base_path)
    total_code_num = 0   #统计文件代码行数计数变量
    total_blank_num = 0   #统计文件空行数计数变量
    total_annotate_num = 0  #统计文件注释行数计数变量
    for f in files:
        code_num, blank_num, annotate_num = calc_linenum(f)
        total_code_num += code_num
        total_blank_num += blank_num
        total_annotate_num += annotate_num

    print u‘代码总行数为:  %s‘ % total_code_num
    print u‘空行总行数为:  %s‘ % total_blank_num
    print u‘注释行总行数为: %s‘ % total_annotate_num

执行结果:

原文地址:https://www.cnblogs.com/zeke-python-road/p/9330830.html

时间: 2024-08-03 14:25:19

python统计代码总行数(代码行、空行、注释行)的相关文章

编写Java脚本统计工程代码总行数

在新公司工作将近一年了,一直独自一人负责服务端集群的运维和代码的编写.不知不觉从一个Project发展到了七八个Project. 看着越来越多的代码,今天突然想统计一下一共写了多少代码.[这里只统计完全由自己编写的代码,因为项目是基于Springboot的,所以直接统计 src目录下所有文件的行数即可] 首先,编写几个工具类. FolderFind.java import java.io.File; import java.util.ArrayList; import java.util.Lis

vs2010统计项目代码总行数

按CTRL+SHIFT+F (Find in files),勾上支持正则表达式,然后输入搜索内容: ^:b*[^:b#/]+.*$ 找到最后一行就是结果 vs2010统计项目代码总行数

黑马程序员——综合练习 计算代码总行数

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 计算代码总行数 思路:1.判断给出的路径是文件还是文件夹 2.如果是文件,用\n把文件分割成一个数组,计算数组元素个数就可以得出文件总行数 如果是文件夹,获得文件夹的所有内容,包括文件和文件夹,然后有递归算出文件夹所有代码的总行数 考察内容:NSString.NSArray.NSFileManager的使用 代码演示: #import <Foundation/Foundation.h> NS

黑马程序员___综合练习 计算代码总行数

-Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 计算代码总行数 思路:1.判断给出的路径是文件还是文件夹 2.如果是文件,用\n把文件分割成一个数组,计算数组元素个数就可以得出文件总行数 如果是文件夹,获得文件夹的所有内容,包括文件和文件夹,然后有递归算出文件夹所有代码的总行数 考察内容:NSString.NSArray.NSFileManager的使用 代码演示: #import <Foundation/Foundation.h> NSUInte

Android studio统计项目总行数

有时候在项目开发中会用到统计项目的总行数功能,今天就教大家如何利用studio进行总行数的统计: 1.打开要统计总行数的项目,按住Ctrl+Shift+A(或者点击导航栏的Help->Find Action),在弹出的框输入'find',然后找到Find in Path,如下图 2.双击打开,在弹出Find in Path的框中的Text to find输入\n,接着勾选Regular expression(正则表达式),Context选择anywhere, Scope选择Whole proje

iOS统计项目的代码总行数

很多在麦子学院学习ios的学员在开班会时问老师,在ios开发的时候,不知道怎样可以统计出写了多少行代码,如何处理这个问题呢,下面跟着麦子学院的ios开发老师来探讨下. 如果要统计ios开发代码,包括头文件的,CD到项目目录下,命令如下 ① 列出每个文件的行数 复制代码 代码如下: find . -name "*.m" -or -name "*.h" -or -name "*.xib" -or -name "*.c" |xarg

Python 统计不同url svn代码变更数

1 #!/bin/bash/python 2 # -*-coding:utf-8-*- 3 #svn统计不同url代码行数变更脚本,过滤空行,不过滤注释. 4 import subprocess,os,sys,time,re,shutil 5 from optparse import OptionParser 6 7 #初始化temp文件: 8 FOLDER = "/tmp/temp_cm_svnrtagdiff" 9 #初始化设置私密配置文件: 10 PRIVATE_FILE = &

一行命令统计iOS工程代码总行数

我们有时候想要统计一下我们的工程的总代码行数,来获取一些成就感或者作为别的用图,这里就介绍一些如何便捷地统计代码的行数,非常简单,方法如下: 1. 打开终端: 2. 通过cd命令到达我们的工程文件,这里注意如果要避免统计引用的第三方库的代码量,我们就要进一步进到我们自己写的代码文件中去,一般是一个与工程文件同名的文件: 3. 统计代码行数: 如果想列出每个文件的行数,输入命令: find . -name "*.m" -or -name "*.h" -or -name

统计项目的java代码总行数

http://www.oschina.net/code/snippet_209431_7358 wc -l $(find . -type f -name '*.java')