青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆 - 51, 文章 - 1, 評(píng)論 - 41, 引用 - 0
數(shù)據(jù)加載中……

Python寫的簡(jiǎn)易代碼統(tǒng)計(jì)工具(2)

本文介紹代碼統(tǒng)計(jì)工具控制臺(tái)界面部分。

 控制臺(tái)界面就是用命令行形式執(zhí)行程序。主要內(nèi)容是輸入?yún)?shù)和結(jié)果輸出。Python有一個(gè)命令行解析模塊getopt。它能解析兩種選項(xiàng)格式:短格式,長(zhǎng)格式。
 短格式:"-"號(hào)后面要緊跟一個(gè)選項(xiàng)字母。如果還有此選項(xiàng)的附加參數(shù),可以用空格分開,也可以不分開。長(zhǎng)度任意,可以用引號(hào)。
                        -v  [正確]
                        -omyfile.py  [正確]
                        -o myfile.py [正確]
                        -o "myfile.py" [正確]
長(zhǎng)格式:"--"號(hào)后面要跟一個(gè)單詞。如果還有些選項(xiàng)的附加參數(shù),后面要緊跟"=",再加上參數(shù)。"="號(hào)前后不能有空格。
                         --output=myfile.py [正確]
                         -- output=myfile.py [不正確]
                         --output= myfile.py [不正確]
                         --output = myfile.py [不正確]

getopt模塊中函數(shù)介紹
opts, args=getopt(args, shortopts, longopts=[])
參數(shù)args:需要解析的全部字符串
參數(shù)shortopt:短格式選項(xiàng),如'hf:',h表示-h,f:表示-f string,冒號(hào)表示后面跟有參數(shù)。
參數(shù)longopt:長(zhǎng)格式選項(xiàng),如['help', 'output='],help表示--help,output=表示output=string,等號(hào)表示選項(xiàng)需要賦值。
返回值opts:選項(xiàng)和參數(shù)對(duì)。
返回值args:沒有匹配上的選項(xiàng)的參數(shù)。
注:-f filename.py 中‘-f’是選項(xiàng),‘filename’是參數(shù)。
如果匹配不符就會(huì)拋出異常,如格式是'hf:',則(假設(shè)程序名為program)
program -s   [不適合的選項(xiàng)]
program -f   [此選項(xiàng)需要跟參數(shù)]
都會(huì)拋出異常。

此程序制裁采用了短格式,它需要調(diào)用counter.py的函數(shù)。
下面是CodeCounter.py中的代碼:
# -*- coding: cp936 -*-
'''
統(tǒng)計(jì)文件或目錄的代碼和注釋
usage: CodeCounter [-hfdlmto] [string|n]
-h          顯示幫助信息
-f string   統(tǒng)計(jì)string文件
-d string   統(tǒng)計(jì)string目錄
-l n        統(tǒng)計(jì)n層子目錄,-1表示所有子目錄
-m string   要統(tǒng)計(jì)文件的后綴名,格式如:.c,.h,.cpp
-t string   代碼類型,c表示C/C++語(yǔ)言,py表示Python
-o n        輸出格式,0表示簡(jiǎn)易輸出,1表示全部輸出
'''

import sys
import getopt
# 統(tǒng)計(jì)工具的工作部分,見couter.py
from counter import CodeCounter 

def usage():
    
print __doc__

def errmsg():
    
print "參數(shù)不對(duì),請(qǐng)參考幫助信息. \nCodeCounter -h顯示幫助信息."

def print_result(result, out):
    
print "全部\t代碼\t注釋\t空行\(zhòng)t文件名"
    total 
= [0,0,0,0]
    
for ele in result:
        total[0] 
+= ele[1][4]
        total[
1+= ele[1][1]+ele[1][3]
        total[
2+= ele[1][2]+ele[1][3]
        total[
3+= ele[1][0]

    
if out == 1:
        
for ele in result:
            
print "%d\t%d\t%d\t%d\t%s" %(ele[1][4], ele[1][1]+ele[1][3],
                                         ele[
1][2]+ele[1][3], ele[1][0], ele[0])
    
print "%d\t%d\t%d\t%d\t總計(jì)" % (total[0], total[1], total[2], total[3])
    
def main(argv):
    
# 解析參數(shù)
    try:
        opts, args 
= getopt.getopt(argv[1:], 'hf:d:m:l:t:o:')
    
except getopt.GetoptError:
        errmsg()
        
return

    (counter, out, result) 
= (CodeCounter(), 0, [])

    
# 設(shè)置參數(shù)
    for opt, arg in opts:
        
if opt in ['-h']:
            usage()
            
return
        
elif opt in ['-f']:
            counter.AddCodeFiles(
'f', arg)
        
elif opt in ['-d']:
            counter.AddCodeFiles(
'd', arg)
        
elif opt in ['-m']:
            counter.SetModes(arg)
        
elif opt in ['-l']:
            counter.SetLevel(int(arg))
        
elif opt in ['-t']:
            counter.SetCodeType(arg)
        
elif opt in ['-o']:
            out 
= int(arg)

    
# 統(tǒng)計(jì)和輸出結(jié)果
    counter.Count(result)
    print_result(result, out)
    
if __name__ == '__main__':
    
try
        main(sys.argv)
    
except:
        errmsg()

運(yùn)行如下:
D:\Work\stat>CodeCounter.py -h
統(tǒng)計(jì)文件或目錄的代碼和注釋
usage: CodeCounter [-hfdlmto] [string|n]
-h          顯示幫助信息
-f string   統(tǒng)計(jì)string文件
-d string   統(tǒng)計(jì)string目錄
-l n        統(tǒng)計(jì)n層子目錄,-1表示所有子目錄
-m string   要統(tǒng)計(jì)文件的后綴名,格式如:.c,.h,.cpp
-t string   代碼類型,c表示C/C++語(yǔ)言,py表示Python
-o n        輸出格式,0表示簡(jiǎn)易輸出,1表示全部輸出

D:\Work\stat>CodeCounter.py -d . -o 1
全部    代碼    注釋    空行    文件名
46      40      15      3       .\stat.
46      40      15      3       總計(jì)

待續(xù)

posted on 2008-01-11 16:09 lemene 閱讀(426) 評(píng)論(0)  編輯 收藏 引用


只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲午夜精品国产| 国产精品久久久久久久久久ktv| 99精品视频免费全部在线| 午夜日韩在线| 亚洲在线一区| 欧美日韩爆操| 亚洲国产精品ⅴa在线观看 | 欧美四级伦理在线| 欧美肥婆在线| 伊人久久综合| 久久久精品网| 麻豆精品视频在线观看| 国产手机视频一区二区| 亚洲综合首页| 欧美一区观看| 国产欧美一级| 欧美一区二区成人| 久久久久久一区二区三区| 国产精品网曝门| 亚洲一区二区三区高清| 亚洲欧美视频在线| 国产精品免费一区二区三区在线观看| 日韩一区二区精品| 亚洲综合电影| 国产精品一区二区三区久久久| 一本大道久久精品懂色aⅴ| 亚洲视频在线观看三级| 91久久在线| 日韩视频在线一区| 欧美日韩黄色大片| 制服诱惑一区二区| 久久aⅴ国产欧美74aaa| 国产日韩欧美在线| 久久精品夜夜夜夜久久| 另类激情亚洲| 亚洲人成人77777线观看| 欧美成人免费全部观看天天性色| 亚洲国产第一| 亚洲主播在线播放| 国产亚洲一区二区三区| 亚洲一区国产精品| 国产精品日韩在线| 久久九九99视频| 91久久午夜| 性欧美大战久久久久久久免费观看 | 欧美日韩一区二区三区在线观看免| 亚洲精品一区二区三区福利| 亚洲欧美另类在线| 黑人操亚洲美女惩罚| 欧美69视频| 亚洲一区二区精品在线| 久久一区激情| 亚洲午夜在线视频| 狠狠噜噜久久| 欧美日韩在线播放一区| 欧美一区二区三区免费视| 欧美高清视频一区二区| 亚洲性图久久| 亚洲国产精品999| 国产精品久久久久久久久久尿| 久久精品中文字幕一区| 亚洲精品一区在线| 久久伊人亚洲| 亚洲影院一区| 亚洲精品裸体| 韩国精品久久久999| 欧美日本簧片| 久久精品综合一区| 亚洲午夜精品久久久久久app| 免费在线亚洲欧美| 亚洲欧美日韩在线观看a三区| 在线观看日韩av| 国产麻豆日韩欧美久久| 欧美激情麻豆| 久久久久久久成人| 亚洲综合精品自拍| 亚洲精品一区二区在线观看| 久久人人爽人人爽| 午夜精品久久久久久久男人的天堂| 狠狠综合久久av一区二区老牛| 欧美日韩一区在线观看视频| 久久久人成影片一区二区三区观看| 一区二区三区久久网| 亚洲国产精品一区二区第四页av| 久久久久久91香蕉国产| 国产在线播放一区二区三区| 欧美日韩一区二区三区免费看| 老司机午夜精品视频| 欧美一区激情视频在线观看| 在线亚洲伦理| 日韩午夜在线视频| 亚洲精品一二三| 91久久精品国产91久久性色tv| 久热精品视频在线免费观看| 欧美在线免费一级片| 午夜精品久久久久久99热软件| 一区二区免费在线播放| 亚洲欧洲一区二区三区在线观看| 在线观看欧美日韩| 一区二区三区在线免费播放| 日韩视频免费大全中文字幕| 亚洲电影免费观看高清完整版在线观看 | 国产日韩欧美不卡在线| 国产精品日本精品| 国产精品午夜av在线| 欧美性感一类影片在线播放 | 国产精品免费一区豆花| 国产精品免费看久久久香蕉| 国产精品xxxxx| 国产精品豆花视频| 国产精品老牛| 国产日韩在线播放| 国产偷国产偷亚洲高清97cao| 国产日韩欧美不卡在线| 国产性做久久久久久| 国内精品写真在线观看| 一区二区三区我不卡| 亚洲国产高潮在线观看| 亚洲国产精品第一区二区| 最近中文字幕mv在线一区二区三区四区 | 国产精品久久久爽爽爽麻豆色哟哟| 欧美日韩在线播放| 国产女人18毛片水18精品| 国产在线不卡视频| 亚洲国产成人精品久久| 亚洲另类自拍| 亚洲欧美在线看| 久久久久网址| 亚洲成色777777在线观看影院| 亚洲人成网站在线观看播放| 9l视频自拍蝌蚪9l视频成人| 亚洲一区久久| 久久综合色婷婷| 欧美色道久久88综合亚洲精品| 国产精品免费看片| 永久域名在线精品| 在线性视频日韩欧美| 久久av老司机精品网站导航| 女主播福利一区| 亚洲狼人综合| 久久精品成人一区二区三区蜜臀| 欧美成ee人免费视频| 国产精品视频午夜| 亚洲国产黄色片| 性高湖久久久久久久久| 欧美国产视频在线观看| 亚洲一级高清| 欧美电影免费观看| 国产欧美韩日| 一本大道久久a久久综合婷婷 | 久久视频免费观看| 亚洲精品欧洲| 久久久久久9| 国产乱子伦一区二区三区国色天香| 亚洲第一精品电影| 欧美一区二区三区久久精品| 欧美福利电影网| 欧美一级淫片播放口| 欧美三日本三级三级在线播放| 黄色一区二区三区| 午夜视频一区二区| 亚洲精品亚洲人成人网| 久久婷婷一区| 久久精品亚洲国产奇米99| 欧美视频二区36p| 亚洲欧洲日产国产网站| 久久久综合网站| 亚洲综合精品四区| 欧美亚男人的天堂| 99re8这里有精品热视频免费| 久久亚洲精品中文字幕冲田杏梨| 亚洲网站在线观看| 欧美日韩国产综合新一区| 亚洲国产精品热久久| 久久精品视频亚洲| 亚洲欧美卡通另类91av| 欧美日韩在线观看一区二区| 亚洲麻豆av| 欧美国产专区| 免费成人美女女| 亚洲国产二区| 欧美黄色大片网站| 美女成人午夜| 亚洲人成网站色ww在线| 欧美sm重口味系列视频在线观看| 欧美呦呦网站| 国模套图日韩精品一区二区| 久久久www成人免费毛片麻豆| 亚洲欧美日韩国产综合| 国产精品五月天| 久久精品视频99| 久久精品亚洲乱码伦伦中文 | 亚洲国产精品欧美一二99| 美日韩精品视频| 亚洲国内精品在线| 欧美激情视频一区二区三区免费| 蜜臀99久久精品久久久久久软件| 亚洲成色精品| 亚洲日本黄色| 国产精品va在线|