| 订阅 | 在线投稿
分享
 
 
 

使用python写的代码行数统计程序

来源:互联网  宽屏版  评论
2008-06-01 02:25:59

原文见:使用python写的代码行数统计程序

因为最近在作的项目很非凡,所使用的语言是一个公司内部的IDE环境,而这个IDE所产生的代码并不是以文本方式存放的,都是放在二进制文件中,而且由于 这门语言外界几乎接触不到,所以没有针对它的代码统计程序,当一个模块完成后要统计代码行数会很困难,要统计的话必须先把代码编辑器中的内容拷贝到一个文 本类型的文件中。

正好一直在关注python,还没有用python写过程序,今天就利用中午休息的时间写了一个简单的代码统计程序。

对输入的路径作递归,查找代码文件,对每一个代码文件计算它的注释行数,空行数,真正的代码行数。

自己用的程序,就写的粗糙了,也没加异常处理。

主要的python脚本文件LineCount.py的内容如下:

使用python写的代码行数统计程序
import sys;
使用python写的代码行数统计程序
import os;
使用python写的代码行数统计程序

使用python写的代码行数统计程序
class LineCount:
使用python写的代码行数统计程序
def trim(self,docstring):
使用python写的代码行数统计程序
if not docstring:
使用python写的代码行数统计程序
return ''
使用python写的代码行数统计程序
lines = docstring.eXPandtabs().splitlines()
使用python写的代码行数统计程序

使用python写的代码行数统计程序
indent = sys.maxint
使用python写的代码行数统计程序
for line in lines[1:]:
使用python写的代码行数统计程序
stripped = line.lstrip()
使用python写的代码行数统计程序
if stripped:
使用python写的代码行数统计程序
indent = min(indent, len(line) - len(stripped))
使用python写的代码行数统计程序

使用python写的代码行数统计程序
trimmed = [lines[0].strip()]
使用python写的代码行数统计程序
if indent < sys.maxint:
使用python写的代码行数统计程序
for line in lines[1:]:
使用python写的代码行数统计程序
trimmed.append(line[indent:].rstrip())
使用python写的代码行数统计程序

使用python写的代码行数统计程序
while trimmed and not trimmed[-1]:
使用python写的代码行数统计程序
trimmed.pop()
使用python写的代码行数统计程序
while trimmed and not trimmed[0]:
使用python写的代码行数统计程序
trimmed.pop(0)
使用python写的代码行数统计程序

使用python写的代码行数统计程序
return '\n'.join(trimmed)
使用python写的代码行数统计程序

使用python写的代码行数统计程序
def FileLineCount(self,filename):
使用python写的代码行数统计程序
(filepath,tempfilename) = os.path.split(filename);
使用python写的代码行数统计程序
(shotname,extension) = os.path.splitext(tempfilename);
使用python写的代码行数统计程序
if extension == '.txt' or extension == '.hol' : # file type
使用python写的代码行数统计程序
file = open(filename,'r');
使用python写的代码行数统计程序
self.sourceFileCount += 1;
使用python写的代码行数统计程序
allLines = file.readlines();
使用python写的代码行数统计程序
file.close();
使用python写的代码行数统计程序

使用python写的代码行数统计程序
lineCount =0;
使用python写的代码行数统计程序
commentCount = 0;
使用python写的代码行数统计程序
blankCount = 0;
使用python写的代码行数统计程序
codeCount = 0;
使用python写的代码行数统计程序
for eachLine in allLines:
使用python写的代码行数统计程序
if eachLine != " " :
使用python写的代码行数统计程序
eachLine = eachLine.replace(" ",""); #remove space
使用python写的代码行数统计程序
eachLine = self.trim(eachLine); #remove tabIndent
使用python写的代码行数统计程序
if eachLine.find('--') == 0 : #LINECOMMENT
使用python写的代码行数统计程序
commentCount += 1;
使用python写的代码行数统计程序
else :
使用python写的代码行数统计程序
if eachLine == "":
使用python写的代码行数统计程序
blankCount += 1;
使用python写的代码行数统计程序
else :
使用python写的代码行数统计程序
codeCount += 1;
使用python写的代码行数统计程序
lineCount = lineCount + 1;
使用python写的代码行数统计程序
self.all += lineCount;
使用python写的代码行数统计程序
self.allComment += commentCount;
使用python写的代码行数统计程序
self.allBlank += blankCount;
使用python写的代码行数统计程序
self.allSource += codeCount;
使用python写的代码行数统计程序
PRint filename;
使用python写的代码行数统计程序
print ' Total :',lineCount ;
使用python写的代码行数统计程序
print ' Comment :',commentCount;
使用python写的代码行数统计程序
print ' Blank :',blankCount;
使用python写的代码行数统计程序
print ' Source :',codeCount;
使用python写的代码行数统计程序

使用python写的代码行数统计程序
def CalulateCodeCount(self,filename):
使用python写的代码行数统计程序
if os.path.isdir(filename) :
使用python写的代码行数统计程序
if not filename.endswith('\\'):
使用python写的代码行数统计程序
filename += '\\';
使用python写的代码行数统计程序
for file in os.listdir(filename):
使用python写的代码行数统计程序
if os.path.isdir(filename + file):
使用python写的代码行数统计程序
self.CalulateCodeCount(filename + file);
使用python写的代码行数统计程序
else:
使用python写的代码行数统计程序
self.FileLineCount(filename + file);
使用python写的代码行数统计程序
else:
使用python写的代码行数统计程序
self.FileLineCount(self,filename);
使用python写的代码行数统计程序

使用python写的代码行数统计程序
# Open File
使用python写的代码行数统计程序
def __init__(self):
使用python写的代码行数统计程序
self.all = 0;
使用python写的代码行数统计程序
self.allComment =0;
使用python写的代码行数统计程序
self.allBlank = 0;
使用python写的代码行数统计程序
self.allSource = 0;
使用python写的代码行数统计程序
self.sourceFileCount = 0;
使用python写的代码行数统计程序
filename = raw_input('Enter file name: ');
使用python写的代码行数统计程序
self.CalulateCodeCount(filename);
使用python写的代码行数统计程序
if self.sourceFileCount == 0 :
使用python写的代码行数统计程序
print 'No Code File';
使用python写的代码行数统计程序
pass;
使用python写的代码行数统计程序
print '\n';
使用python写的代码行数统计程序
print '***************** All Files **********************';
使用python写的代码行数统计程序
print ' Files :',self.sourceFileCount;
使用python写的代码行数统计程序
print ' Total :',self.all;
使用python写的代码行数统计程序
print ' Comment :',self.allComment;
使用python写的代码行数统计程序
print ' Blank :',self.allBlank;
使用python写的代码行数统计程序
print ' Source :',self.allSource;
使用python写的代码行数统计程序
print '****************************************************';
使用python写的代码行数统计程序

使用python写的代码行数统计程序
myLineCount = LineCount();

可以看到extension == '.txt' or extension == '.hol'这句是判定文件的后缀,来确定是否要计算代码行数。

if eachLine.find('--') == 0 :这句来判定当前行是不是单行注释(我们的这门语言不支持块注释)。

为了能在其他机器上运行,使用了py2exe来把python脚本生成可执行的exe,setup.py脚本内容如下:

使用python写的代码行数统计程序
from distutils.core import setup
使用python写的代码行数统计程序
import py2exe
使用python写的代码行数统计程序

使用python写的代码行数统计程序
setup(
使用python写的代码行数统计程序

使用python写的代码行数统计程序
version = "0.0.1",
使用python写的代码行数统计程序
description = "LineCount",
使用python写的代码行数统计程序
name = "LineCount",
使用python写的代码行数统计程序

使用python写的代码行数统计程序
console = ["LineCount.py"],
使用python写的代码行数统计程序
)
使用python写的代码行数统计程序

不过生成exe后程序臃肿很多,有3M多。

感觉使用python确实是件很舒服的事。

  原文见:使用python写的代码行数统计程序 因为最近在作的项目很非凡,所使用的语言是一个公司内部的IDE环境,而这个IDE所产生的代码并不是以文本方式存放的,都是放在二进制文件中,而且由于 这门语言外界几乎接触不到,所以没有针对它的代码统计程序,当一个模块完成后要统计代码行数会很困难,要统计的话必须先把代码编辑器中的内容拷贝到一个文 本类型的文件中。 正好一直在关注python,还没有用python写过程序,今天就利用中午休息的时间写了一个简单的代码统计程序。 对输入的路径作递归,查找代码文件,对每一个代码文件计算它的注释行数,空行数,真正的代码行数。 自己用的程序,就写的粗糙了,也没加异常处理。 主要的python脚本文件LineCount.py的内容如下: [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421562125.gif[/img][/url]import sys; [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421562177.gif[/img][/url]import os; [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421562218.gif[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421562271.gif[/img][/url]class LineCount: [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421562330.gif[/img][/url] def trim(self,docstring): [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421562390.gif[/img][/url] if not docstring: [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421562411.gif[/img][/url] return '' [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421562460.gif[/img][/url] lines = docstring.eXPandtabs().splitlines() [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421562543.gif[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421562554.gif[/img][/url] indent = sys.maxint [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421562566.gif[/img][/url] for line in lines[1:]: [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421562587.gif[/img][/url] stripped = line.lstrip() [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421562655.gif[/img][/url] if stripped: [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421562796.gif[/img][/url] indent = min(indent, len(line) - len(stripped)) [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421562838.gif[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421562850.gif[/img][/url] trimmed = [lines[0].strip()] [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421562932.gif[/img][/url] if indent < sys.maxint: [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421562979.gif[/img][/url] for line in lines[1:]: [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421562998.gif[/img][/url] trimmed.append(line[indent:].rstrip()) [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421563018.gif[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421563100.gif[/img][/url] while trimmed and not trimmed[-1]: [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421563113.gif[/img][/url] trimmed.pop() [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421563297.gif[/img][/url] while trimmed and not trimmed[0]: [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421563485.gif[/img][/url] trimmed.pop(0) [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421563738.gif[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421563880.gif[/img][/url] return '\n'.join(trimmed) [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421563900.gif[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421563915.gif[/img][/url] def FileLineCount(self,filename): [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421563997.gif[/img][/url] (filepath,tempfilename) = os.path.split(filename); [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421564017.gif[/img][/url] (shotname,extension) = os.path.splitext(tempfilename); [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421564060.gif[/img][/url] if extension == '.txt' or extension == '.hol' : # file type [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421564092.gif[/img][/url] file = open(filename,'r'); [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421564132.gif[/img][/url] self.sourceFileCount += 1; [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421564190.gif[/img][/url] allLines = file.readlines(); [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421564224.gif[/img][/url] file.close(); [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421564381.gif[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421564408.gif[/img][/url] lineCount =0; [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421564438.gif[/img][/url] commentCount = 0; [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421564460.gif[/img][/url] blankCount = 0; [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421564494.gif[/img][/url] codeCount = 0; [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421564513.gif[/img][/url] for eachLine in allLines: [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421564524.gif[/img][/url] if eachLine != " " : [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421564536.gif[/img][/url] eachLine = eachLine.replace(" ",""); #remove space [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421564547.gif[/img][/url] eachLine = self.trim(eachLine); #remove tabIndent [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421564558.gif[/img][/url] if eachLine.find('--') == 0 : #LINECOMMENT [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421564571.gif[/img][/url] commentCount += 1; [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421564582.gif[/img][/url] else : [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421564597.gif[/img][/url] if eachLine == "": [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421564645.gif[/img][/url] blankCount += 1; [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421564666.gif[/img][/url] else : [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421564729.gif[/img][/url] codeCount += 1; [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421564898.gif[/img][/url] lineCount = lineCount + 1; [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421564943.gif[/img][/url] self.all += lineCount; [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421564976.gif[/img][/url] self.allComment += commentCount; [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421564989.gif[/img][/url] self.allBlank += blankCount; [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421565002.gif[/img][/url] self.allSource += codeCount; [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421565095.gif[/img][/url] PRint filename; [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421565107.gif[/img][/url] print ' Total :',lineCount ; [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421565123.gif[/img][/url] print ' Comment :',commentCount; [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421565155.gif[/img][/url] print ' Blank :',blankCount; [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421565167.gif[/img][/url] print ' Source :',codeCount; [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421565182.gif[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421565196.gif[/img][/url] def CalulateCodeCount(self,filename): [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421565214.gif[/img][/url] if os.path.isdir(filename) : [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421565238.gif[/img][/url] if not filename.endswith('\\'): [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421565261.gif[/img][/url] filename += '\\'; [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421565423.gif[/img][/url] for file in os.listdir(filename): [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421565434.gif[/img][/url] if os.path.isdir(filename + file): [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421565461.gif[/img][/url] self.CalulateCodeCount(filename + file); [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421565492.gif[/img][/url] else: [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421565526.gif[/img][/url] self.FileLineCount(filename + file); [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421565542.gif[/img][/url] else: [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421565565.gif[/img][/url] self.FileLineCount(self,filename); [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421565580.gif[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421565688.gif[/img][/url] # Open File [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421565808.gif[/img][/url] def __init__(self): [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421565822.gif[/img][/url] self.all = 0; [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421565911.gif[/img][/url] self.allComment =0; [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421565923.gif[/img][/url] self.allBlank = 0; [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421565934.gif[/img][/url] self.allSource = 0; [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421566012.gif[/img][/url] self.sourceFileCount = 0; [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421566030.gif[/img][/url] filename = raw_input('Enter file name: '); [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421566056.gif[/img][/url] self.CalulateCodeCount(filename); [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421566069.gif[/img][/url] if self.sourceFileCount == 0 : [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421566093.gif[/img][/url] print 'No Code File'; [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421566266.gif[/img][/url] pass; [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421566293.gif[/img][/url] print '\n'; [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421566312.gif[/img][/url] print '***************** All Files **********************'; [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421566338.gif[/img][/url] print ' Files :',self.sourceFileCount; [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421566437.gif[/img][/url] print ' Total :',self.all; [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421566452.gif[/img][/url] print ' Comment :',self.allComment; [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421566487.gif[/img][/url] print ' Blank :',self.allBlank; [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421566499.gif[/img][/url] print ' Source :',self.allSource; [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421566510.gif[/img][/url] print '****************************************************'; [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421566521.gif[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421566650.gif[/img][/url]myLineCount = LineCount(); 可以看到extension == '.txt' or extension == '.hol'这句是判定文件的后缀,来确定是否要计算代码行数。 if eachLine.find('--') == 0 :这句来判定当前行是不是单行注释(我们的这门语言不支持块注释)。 为了能在其他机器上运行,使用了py2exe来把python脚本生成可执行的exe,setup.py脚本内容如下: [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421566663.gif[/img][/url]from distutils.core import setup [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421566682.gif[/img][/url]import py2exe [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421566693.gif[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421566704.gif[/img][/url]setup( [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421566779.gif[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421581868.gif[/img][/url] version = "0.0.1", [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421581896.gif[/img][/url] description = "LineCount", [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421581985.gif[/img][/url] name = "LineCount", [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421582031.gif[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421582096.gif[/img][/url] console = ["LineCount.py"], [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421582110.gif[/img][/url] ) [url=http://www.wangchao.net.cn/bbsdetail_1785889.html][img]http://image.wangchao.net.cn/it/1323421582152.gif[/img][/url] 不过生成exe后程序臃肿很多,有3M多。 感觉使用python确实是件很舒服的事。
󰈣󰈤
 
 
 
>>返回首页<<
 
 热帖排行
 
 
王朝网络微信公众号
微信扫码关注本站公众号wangchaonetcn
 
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
©2005- 王朝网络 版权所有