博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python统计代码总行数(代码行、空行、注释行)
阅读量:5102 次
发布时间:2019-06-13

本文共 1615 字,大约阅读时间需要 5 分钟。

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

功能:

        1.统计代码总行数

        2.统计空行数

        3.统计注释行数

# coding=utf-8import 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_numif __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

你可能感兴趣的文章
JQuery Smart UI 简介 (一) — 纯Htm+Js的ajax开发框架[演示Demo已放出]
查看>>
MySQL数据表查询操作
查看>>
miui 系统铃声
查看>>
c#带参数和返回值的函数 开启线程调用的方法
查看>>
[转载]Unity3D 访问Access数据库
查看>>
go语言的命令行库
查看>>
[HAOI2016]找相同字符
查看>>
100天搞定机器学习|Day4-6 逻辑回归
查看>>
qt下的跨目录多工程编译
查看>>
LNMP 常见问题(FAQ)
查看>>
linux_grep操作
查看>>
DB9针型:RS485输出信号及接线端子引脚分配
查看>>
改动Centosserver主机名称
查看>>
使用Struts2和jQuery EasyUI实现简单CRUD系统(五)——jsp,json,EasyUI的结合
查看>>
wordpress主题安装教程及错误处理
查看>>
浅谈程序员的学历
查看>>
Java中TreeMap集合讲解
查看>>
javascript开发HTML5游戏--斗地主(单机模式part1)
查看>>
leetcode-337-打家劫舍三*
查看>>
unity3d中串口的使用
查看>>