手机
当前位置:查字典教程网 >脚本专栏 >python >python实现统计代码行数的方法
python实现统计代码行数的方法
摘要:本文实例讲述了python实现统计代码行数的方法。分享给大家供大家参考。具体实现方法如下:'''Author:liupengfeiFunct...

本文实例讲述了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和pyqt实现360的CLable控件

python函数返回多个值的示例方法

python 快速排序代码

python实现的各种排序算法代码

用python删除java文件头上版权信息的方法

python迭代器的使用方法实例

Python操作列表的常用方法分享

python生成器的使用方法

python 获取本机ip地址的两个方法

Python实现动态添加类的属性或成员函数的解决方法

精品推荐
分类导航