• 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

     执行结果:

     

  • 相关阅读:
    .net系统自学笔记——自定义特性及反射
    .net系统自学笔记——内存管理与指针
    .net系统自学笔记——动态语言扩展(又一个没听过没学过的,空,以后会了再补充吧)
    .net系统自学笔记——Linq
    思维的惰性
    论演员的自我修养2
    职场有影帝出没,屌丝们请当心!
    论演员的自我修养
    道与术
    关注细节但不陷入细节
  • 原文地址:https://www.cnblogs.com/zeke-python-road/p/9330830.html
Copyright © 2020-2023  润新知