本文实例讲述了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的相关知识,其中主要介绍了关于Seaborn的相关问题,包括了数据可视化处理的散点图、折线图、条形图等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于进程池与进程锁的相关问题,包括进程池的创建模块,进程池函数等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于简历筛选的相关问题,包括了定义 ReadDoc 类用以读取 word 文件以及定义 search_word 函数用以筛选的相关内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于数据类型之字符串、数字的相关问题,下面一起来看一下,希望对大家有帮助。

VS Code的确是一款非常热门、有强大用户基础的一款开发工具。本文给大家介绍一下10款高效、好用的插件,能够让原本单薄的VS Code如虎添翼,开发效率顿时提升到一个新的阶段。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于numpy模块的相关问题,Numpy是Numerical Python extensions的缩写,字面意思是Python数值计算扩展,下面一起来看一下,希望对大家有帮助。

pythn的中文意思是巨蟒、蟒蛇。1989年圣诞节期间,Guido van Rossum在家闲的没事干,为了跟朋友庆祝圣诞节,决定发明一种全新的脚本语言。他很喜欢一个肥皂剧叫Monty Python,所以便把这门语言叫做python。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

Dreamweaver Mac版
视觉化网页开发工具

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

记事本++7.3.1
好用且免费的代码编辑器