最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

python实现统计代码行数的方法

来源:动视网 责编:小采 时间:2020-11-27 14:41:23
文档

python实现统计代码行数的方法

python实现统计代码行数的方法:本文实例讲述了python实现统计代码行数的方法。分享给大家供大家参考。具体实现方法如下: ''' Author: liupengfei Function: count lines of code in a folder iteratively Shell-format: cmd [dir] Attention:
推荐度:
导读python实现统计代码行数的方法:本文实例讲述了python实现统计代码行数的方法。分享给大家供大家参考。具体实现方法如下: ''' Author: liupengfei Function: count lines of code in a folder iteratively Shell-format: cmd [dir] Attention:


本文实例讲述了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实现统计代码行数的方法:本文实例讲述了python实现统计代码行数的方法。分享给大家供大家参考。具体实现方法如下: ''' Author: liupengfei Function: count lines of code in a folder iteratively Shell-format: cmd [dir] Attention:
推荐度:
标签: 方法 代码 统计
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top