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
执行结果:
python统计代码总行数(代码行、空行、注释行)的更多相关文章
- 基于Gitlab统计代码行--统计所有仓库、所有提交人的代码总行数(新增加-删除)
公司绩效考核要求,统计GITLAB仓库所有人提示有效代码行业 脚本1: 统计所有仓库.所有提交人的代码总行数(新增加-删除) 脚本2: 统计所有仓库.所有提交人的代码提交汇总与删除汇总 脚本3: 统计 ...
- 我的Android进阶之旅------>Android Studio使用statistics插件统计项目代码总行数
今天公司说要统计一下项目总共了多少行代码,于是上网看了一下使用statistic插件可以统计代码总行数,下面给大家分享一下 ! 1.下载[statistic]插件 首先当然要把名为[statistic ...
- 编写Java脚本统计工程代码总行数
在新公司工作将近一年了,一直独自一人负责服务端集群的运维和代码的编写.不知不觉从一个Project发展到了七八个Project. 看着越来越多的代码,今天突然想统计一下一共写了多少代码.[这里只统计完 ...
- iOS 统计App 的代码总行数
打开Terminal,cd 到项目的根目录下,输入以下命令 find . -name "*.m" -or -name "*.mm" -or -name &quo ...
- Python-统计svn代码总行数
1 #!/bin/bash/python 2 # -*-coding:utf-8-*- 3 #svn统计url代码行数脚本,过滤空行,不过滤注释. 4 5 import subprocess,os,s ...
- Android studio统计项目总行数
有时候在项目开发中会用到统计项目的总行数功能,今天就教大家如何利用studio进行总行数的统计: 1.打开要统计总行数的项目,按住Ctrl+Shift+A(或者点击导航栏的Help->Find ...
- 使用Pycharm官方统计代码行插件统计代码总行数
最近有需求,需要统计项目代码的总行数,首先想到了使用Pycharm官方的统计行数插件,发现效果还不错. 官方代码统计插件指导:https://plugins.jetbrains.com/plugin/ ...
- 使用正则表达式统计vs项目代码总行数[转]
怎么统计VS2008中工程的总共代码行数?怎么统计VS2008中工程的总共代码行数?在一个大工程中有很多的源文件和头文件,我如何快速统计总行数? ------解决方案----------------- ...
- Python 统计不同url svn代码变更数
#!/bin/bash/python # -*-coding:utf-8-*- #svn统计不同url代码行数变更脚本,过滤空行,不过滤注释. import subprocess,os,sys,tim ...
随机推荐
- 警方破获超大DDoS黑产案,20万个僵尸网络运营商被抓
中国警方已镇压并逮捕了一个犯罪集团,该集团经营着一个由200,000多个受感染网站构成的僵尸网络,这些网站被用来发起DDoS攻击. 这是中国当局针对兴旺的本地DDoS租用场景进行的首次重大镇压,最大的 ...
- Linux下Python安装PyMySQL成功,但无法导入的问题
今天使用 Nginx 部署 Django应用.安装python库都显示成功安装. 尝试启动 uwsgi 服务,竟然报错 Traceback (most recent call last): File ...
- Mysql中的读锁,写锁,乐观锁及事务隔离级别和并发问题
mysql读锁,写锁,乐观锁 读锁,也叫共享锁(shared lock) SELECT * FROM table_name WHERE ... LOCK IN SHARE MODE 写锁,也叫排他 ...
- bzoj 4500 矩阵 题解
题意: 有一个 $ n * m $ 的矩阵,初始每个格子的权值都为 $ 0 $,可以对矩阵执行两种操作: 选择一行,该行每个格子的权值加1或减1. 选择一列,该列每个格子的权值加1或减1. 现在有 $ ...
- AttributeError: module 'select' has no attribute 'epoll'
AttributeError: module 'select' has no attribute 'epoll' 今天乌班图镜像莫名其妙损坏了,只好用Windows写并发TCP服务器的代码.运行后 ...
- Sql CLR创建一个简单的表值函数
1.创建面目: 2. 添加函数代码: using System; using System.Data.Sql; using Microsoft.SqlServer.Server; using Syst ...
- 方法2:使用Jenkins构建Docker镜像 --SpringCloud
前提意义: SpringCloud微服务里包含多个文件夹,拉取仓库的所有代码,然后过根据选项参数使用maven编译打包指定目录的jar,然后再根据这个目录的Dockerfile文件制作Docker镜像 ...
- oralce数据表空间满了
--切换至oralce用户 su - oracle--执行sqlplus / as sysdba --查询表空间使用情况SELECT Upper(F.TABLESPACE_NAME) "表空 ...
- android 常用库的地址--dialog,recycler
android 弹出框 https://github.com/li-xiaojun/XPopup android RecyclerViewAdapter https://github ...
- PHP 结合 Bootstrap 实现学生列表以及添加学生功能实现(继上篇登录及注册功能之后)
本人是一位学生,正在学习当中,可能BUG众多,请见谅并指正,谢谢!!! 学生列表实现 HTML: <!DOCTYPE html> <html> <head> < ...