想知道一段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();
玩蛇网文章,转载请注明出处和文章网址:https://www.iplaypy.com/code/base/b2642.html
相关文章 Recommend