本文实例讲述了python实现统计代码行数的方法。分享给大家供大家参考。具体实现方法如下:

'''

Author: liupengfei

Function: count lines of code in a folder iteratively

Shell-format: cmd [dir]

Attention: default file encode is utf8 and default file type is java-source-file. But users can customize this script by just modifing global variables.

'''

import sys

import os

import codecs

from _pyio import open

totalCount = 0;

fileType = '.java'

descLineBegin = '//'

descBlockBegin = r'/**'

descBlockEnd = r'*/'

fileEncode = 'utf-8'

def main():

DIR = os.getcwd()

if len(sys.argv) >= 2:

DIR = sys.argv[1]

if os.path.exists(DIR) and os.path.isdir(DIR):

print('target directory is %s' % DIR)

countDir(DIR)

print('total code line is %d' % totalCount)

else:

print('target should be a directory!')

def isFileType(file):

return len(fileType) + file.find(fileType) == len(file)

def countDir(DIR):

for file in os.listdir(DIR):

absPath = DIR + os.path.sep + file;

if os.path.exists(absPath):

if os.path.isdir(absPath):

countDir(absPath)

elif isFileType(absPath):

try:

countFile(absPath)

except UnicodeDecodeError:

print(

'''encode of %s is different, which

is not supported in this version!'''

)

def countFile(file):

global totalCount

localCount = 0

isInBlockNow = False

f = codecs.open(file, 'r', fileEncode);

for line in f:

if (not isInBlockNow) and line.find(descLineBegin) == 0:

pass;

elif (not isInBlockNow) and line.find(descBlockBegin) >= 0:

if line.find(descBlockBegin) > 0:

localCount += 1

isInBlockNow = True;

elif isInBlockNow and line.find(descBlockEnd) >= 0:

if line.find(descBlockEnd) + len(descBlockEnd) < len(line):

localCount += 1

isInBlockNow = False;

elif (not isInBlockNow) and len(line.replace('\\s+', '')) > 0:

localCount += 1

f.close()

totalCount += localCount

print('%s : %d' % (file, localCount))

if __name__ == '__main__':

main();

希望本文所述对大家的Python程序设计有所帮助。

python统计代码行数_python实现统计代码行数的方法相关推荐

  1. python log函数怎么打_Python的log日志功能及设置方法

    python log函数怎么打_Python的log日志功能及设置方法_Elaine要当律师的博客-CSDN博客

  2. python统计并输出文件的行数_python实用统计文件行数 类似wc命令

    1.[代码][Python]代码 # -*- coding: GBK -* # Author: Seay # Blog :www.cnseay.com import os,sys def func_c ...

  3. python统计中文字符数量_Python实现统计文本文件字数的方法

    本文实例讲述了Python实现统计文本文件字数的方法.分享给大家供大家参考,具体如下: 统计文本文件的字数,从当前目录下的file.txt取文件 # -*- coding: GBK -*- impor ...

  4. python判断回文数_Python练习题---判断回文数

    设n是一个任意自然数,如果n的各位数字反向排序所得的自然数与n相等,则n被称为回文数,从键盘输入一个5位数字 ,请编写程序判断这个数字是不是回文数. 思路:先获取一个字符串,再判断该字符串是否满足是自 ...

  5. python代码代写_python代写代码

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 1 原则在开始讨论python社区所采用的具体标准或是由其他人推荐的建议之前,考 ...

  6. python递归判断回文数_Python实现判断回文数算法

    回文数的定义:回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例1: 输入:121 输出:True 示例2: 输入:-121 输出:False 解释: 从左向右读, 为 -121 . ...

  7. python绘制散点图的步骤_python绘制散点图并标记序号的方法

    python绘制散点图并标记序号的方法 实现二维平面上散点的绘制,并可以给每个散点标记序号或者名称: import numpy as np import matplotlib.pyplot as pl ...

  8. python如何实现下载文件_python实现下载文件的三种方法

    python实现下载文件的三种方法 Python开发中时长遇到要下载文件的情况,最常用的方法就是通过Http利用urllib或者urllib2模块. 当然你也可以利用ftplib从ftp站点下载文件. ...

  9. 怎么用python画sin函数图像_Python绘制正余弦函数图像的方法

    今天打算通过绘制正弦和余弦函数,从默认的设置开始,一步一步地调整改进,让它变得好看,变成我们初高中学习过的图象那样.通过这个过程来学习如何进行对图表的一些元素的进行调整. 01. 简单绘图 matpl ...

  10. python显示代码行数_python实现的代码行数统计代码

    python实现的代码行数统计代码 ''' Author: liupengfei Function: count lines of code in a folder iteratively Shell ...

最新文章

  1. PyTorch 笔记(12)— Tensor 持久化、向量化、torch.set_num_threads、torch.set_printoptions
  2. 机器人大潮中暗藏多少伪命题
  3. Java中 EvenQueue.invokeLater用法
  4. PHP的抽象类的一段简单代码示例
  5. MATLAB不定积分的运算,matlab中怎么把积分函数 int 得到的不定积分式代入 solve 函数中进行计算?...
  6. python gui测试框架_八款常用的 Python GUI 开发框架推荐
  7. 做一个.net 程序员要掌握的知识提纲
  8. 产品人如何在小企业中夹缝生存?
  9. ubuntu下安装模拟环境carla
  10. Vue属性绑定~非常详细
  11. 数学分析典型方法pdf下载_硬质合金刀具常识及使用方法 pdf下载 0700
  12. html+js 调用摄像头识别二维码
  13. 微信小程序开发笔记,你收藏了吗?
  14. Cocos Creator微信小游戏添加视频广告
  15. 用C语言打印简单图案(爱心\圆形\三角形等)
  16. 2022年全球市场智能室内空气质量检测仪总体规模、主要生产商、主要地区、产品和应用细分研究报告
  17. 2021年红包封面小程序源码独立后台无限裂变线上线下引流工具微信流量主小程序
  18. 理解悲观锁乐观锁、同步锁、读锁、写锁
  19. Windows7声卡驱动不行怎么办
  20. PHP 验证银行卡是否存在,匹配开户行

热门文章

  1. 关于如何学习日语的最快方法
  2. MySQL数素数_素数是什么意思?
  3. 个人邮箱Outlook登录入口在哪?遇到登录邮箱服务器配置错误的解决办法
  4. 手动安装torch和torchviosn教程
  5. 了解中国的组织结构后续
  6. Hexo添加字数统计和阅读统计
  7. [cocos2d-x]捕鱼达人炮台射击角度的旋转实现
  8. 静雅小学学生信息管理系统的设计与实现
  9. Oracle:ORA-00392: log 3 of thread 1 is being cleared, operation not allowed
  10. 基于中国航信Eterm开发