| 導購 | 订阅 | 在线投稿
分享
 
 
 

使用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=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421562125.gif[/img][/url]import sys; [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421562177.gif[/img][/url]import os; [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421562218.gif[/img][/url] [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421562271.gif[/img][/url]class LineCount: [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421562330.gif[/img][/url] def trim(self,docstring): [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421562390.gif[/img][/url] if not docstring: [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421562411.gif[/img][/url] return '' [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421562460.gif[/img][/url] lines = docstring.eXPandtabs().splitlines() [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421562543.gif[/img][/url] [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421562554.gif[/img][/url] indent = sys.maxint [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421562566.gif[/img][/url] for line in lines[1:]: [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421562587.gif[/img][/url] stripped = line.lstrip() [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421562655.gif[/img][/url] if stripped: [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421562796.gif[/img][/url] indent = min(indent, len(line) - len(stripped)) [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421562838.gif[/img][/url] [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421562850.gif[/img][/url] trimmed = [lines[0].strip()] [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421562932.gif[/img][/url] if indent < sys.maxint: [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421562979.gif[/img][/url] for line in lines[1:]: [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421562998.gif[/img][/url] trimmed.append(line[indent:].rstrip()) [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421563018.gif[/img][/url] [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421563100.gif[/img][/url] while trimmed and not trimmed[-1]: [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421563113.gif[/img][/url] trimmed.pop() [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421563297.gif[/img][/url] while trimmed and not trimmed[0]: [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421563485.gif[/img][/url] trimmed.pop(0) [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421563738.gif[/img][/url] [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421563880.gif[/img][/url] return '\n'.join(trimmed) [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421563900.gif[/img][/url] [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421563915.gif[/img][/url] def FileLineCount(self,filename): [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421563997.gif[/img][/url] (filepath,tempfilename) = os.path.split(filename); [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421564017.gif[/img][/url] (shotname,extension) = os.path.splitext(tempfilename); [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421564060.gif[/img][/url] if extension == '.txt' or extension == '.hol' : # file type [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421564092.gif[/img][/url] file = open(filename,'r'); [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421564132.gif[/img][/url] self.sourceFileCount += 1; [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421564190.gif[/img][/url] allLines = file.readlines(); [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421564224.gif[/img][/url] file.close(); [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421564381.gif[/img][/url] [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421564408.gif[/img][/url] lineCount =0; [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421564438.gif[/img][/url] commentCount = 0; [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421564460.gif[/img][/url] blankCount = 0; [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421564494.gif[/img][/url] codeCount = 0; [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421564513.gif[/img][/url] for eachLine in allLines: [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421564524.gif[/img][/url] if eachLine != " " : [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421564536.gif[/img][/url] eachLine = eachLine.replace(" ",""); #remove space [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421564547.gif[/img][/url] eachLine = self.trim(eachLine); #remove tabIndent [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421564558.gif[/img][/url] if eachLine.find('--') == 0 : #LINECOMMENT [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421564571.gif[/img][/url] commentCount += 1; [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421564582.gif[/img][/url] else : [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421564597.gif[/img][/url] if eachLine == "": [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421564645.gif[/img][/url] blankCount += 1; [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421564666.gif[/img][/url] else : [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421564729.gif[/img][/url] codeCount += 1; [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421564898.gif[/img][/url] lineCount = lineCount + 1; [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421564943.gif[/img][/url] self.all += lineCount; [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421564976.gif[/img][/url] self.allComment += commentCount; [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421564989.gif[/img][/url] self.allBlank += blankCount; [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421565002.gif[/img][/url] self.allSource += codeCount; [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421565095.gif[/img][/url] PRint filename; [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421565107.gif[/img][/url] print ' Total :',lineCount ; [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421565123.gif[/img][/url] print ' Comment :',commentCount; [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421565155.gif[/img][/url] print ' Blank :',blankCount; [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421565167.gif[/img][/url] print ' Source :',codeCount; [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421565182.gif[/img][/url] [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421565196.gif[/img][/url] def CalulateCodeCount(self,filename): [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421565214.gif[/img][/url] if os.path.isdir(filename) : [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421565238.gif[/img][/url] if not filename.endswith('\\'): [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421565261.gif[/img][/url] filename += '\\'; [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421565423.gif[/img][/url] for file in os.listdir(filename): [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421565434.gif[/img][/url] if os.path.isdir(filename + file): [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421565461.gif[/img][/url] self.CalulateCodeCount(filename + file); [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421565492.gif[/img][/url] else: [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421565526.gif[/img][/url] self.FileLineCount(filename + file); [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421565542.gif[/img][/url] else: [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421565565.gif[/img][/url] self.FileLineCount(self,filename); [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421565580.gif[/img][/url] [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421565688.gif[/img][/url] # Open File [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421565808.gif[/img][/url] def __init__(self): [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421565822.gif[/img][/url] self.all = 0; [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421565911.gif[/img][/url] self.allComment =0; [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421565923.gif[/img][/url] self.allBlank = 0; [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421565934.gif[/img][/url] self.allSource = 0; [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421566012.gif[/img][/url] self.sourceFileCount = 0; [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421566030.gif[/img][/url] filename = raw_input('Enter file name: '); [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421566056.gif[/img][/url] self.CalulateCodeCount(filename); [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421566069.gif[/img][/url] if self.sourceFileCount == 0 : [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421566093.gif[/img][/url] print 'No Code File'; [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421566266.gif[/img][/url] pass; [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421566293.gif[/img][/url] print '\n'; [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421566312.gif[/img][/url] print '***************** All Files **********************'; [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421566338.gif[/img][/url] print ' Files :',self.sourceFileCount; [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421566437.gif[/img][/url] print ' Total :',self.all; [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421566452.gif[/img][/url] print ' Comment :',self.allComment; [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421566487.gif[/img][/url] print ' Blank :',self.allBlank; [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421566499.gif[/img][/url] print ' Source :',self.allSource; [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421566510.gif[/img][/url] print '****************************************************'; [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421566521.gif[/img][/url] [url=/bbs/detail_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=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421566663.gif[/img][/url]from distutils.core import setup [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421566682.gif[/img][/url]import py2exe [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421566693.gif[/img][/url] [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421566704.gif[/img][/url]setup( [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421566779.gif[/img][/url] [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421581868.gif[/img][/url] version = "0.0.1", [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421581896.gif[/img][/url] description = "LineCount", [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421581985.gif[/img][/url] name = "LineCount", [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421582031.gif[/img][/url] [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421582096.gif[/img][/url] console = ["LineCount.py"], [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421582110.gif[/img][/url] ) [url=/bbs/detail_1785889.html][img]http://image.wangchao.net.cn/it/1323421582152.gif[/img][/url] 不過生成exe後程序臃腫很多,有3M多。 感覺使用python確實是件很舒服的事。
󰈣󰈤
王朝萬家燈火計劃
期待原創作者加盟
 
 
 
>>返回首頁<<
 
 
 
 
 熱帖排行
 
 
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有