Python统计代码行数的快捷方法,python统计行数,想知道一段Python教


想知道一段Python教程代码有多少行,除了看标注的行号外还可以用Python统计代码行数的快捷方法。需要用到python sys模块和python os模块,这两个模块可以说是万能的最常被使用到的Python模块。

这个python源代码统计工具还不是十分的完善。本人希望能做的是一款能统计所有类型源代码行数的工具,可支支持当下所有的格式,能做到统计准确速度快最好了。希望有能力的朋友们帮我完善,做成能为所有不同计算机编程语言的程序员服务的工具。

Python统计代码行数的快捷方法源码如下:

import sys;import os;class LineCount:    def trim(self,docstring):        if not docstring:            return ''        lines = docstring.expandtabs().splitlines()                indent = sys.maxint        for line in lines[1:]:            stripped = line.lstrip()            if stripped:                indent = min(indent, len(line) - len(stripped))                trimmed = [lines[0].strip()]        if indent < sys.maxint:            for line in lines[1:]:                trimmed.append(line[indent:].rstrip())                while trimmed and not trimmed[-1]:            trimmed.pop()        while trimmed and not trimmed[0]:            trimmed.pop(0)                return '\n'.join(trimmed)        def FileLineCount(self,filename):        (filepath,tempfilename) = os.path.split(filename);        (shotname,extension) = os.path.splitext(tempfilename);        if extension == '.txt' or extension == '.hol' : # file type             file = open(filename,'r');            self.sourceFileCount += 1;            allLines = file.readlines();            file.close();                        lineCount    =0;            commentCount = 0;            blankCount   = 0;            codeCount    = 0;            for eachLine in allLines:                if eachLine != " " :                    eachLine = eachLine.replace(" ",""); #remove space                    eachLine = self.trim(eachLine);      #remove tabIndent                    if  eachLine.find('--') == 0 :  #LINECOMMENT                         commentCount += 1;                    else :                        if eachLine == "":                            blankCount += 1;                        else :                            codeCount += 1;                lineCount = lineCount + 1;            self.all += lineCount;            self.allComment += commentCount;            self.allBlank += blankCount;            self.allSource += codeCount;            print filename;            print '           Total      :',lineCount ;            print '           Comment    :',commentCount;            print '           Blank      :',blankCount;            print '           Source     :',codeCount;                        def CalulateCodeCount(self,filename):        if os.path.isdir(filename) :            if not filename.endswith('\\'):                filename += '\\';             for file in os.listdir(filename):                if os.path.isdir(filename + file):                    self.CalulateCodeCount(filename + file);                else:                    self.FileLineCount(filename + file);        else:            self.FileLineCount(filename);#www.iplaypy.com    def __init__(self):        self.all = 0;        self.allComment =0;        self.allBlank = 0;        self.allSource = 0;        self.sourceFileCount = 0;        filename = raw_input('Enter file name: ');        self.CalulateCodeCount(filename);        if self.sourceFileCount == 0 :            print 'No Code File';            pass;        print '\n';        print '*****************  All Files  **********************';        print '    Files      :',self.sourceFileCount;        print '    Total      :',self.all;        print '    Comment    :',self.allComment;        print '    Blank      :',self.allBlank;        print '    Source     :',self.allSource;        print '****************************************************';myLineCount = LineCount();

编橙之家文章,

评论关闭