argparse模塊
argparse是一個方便的對於cmd-line的接口函數,可以方便的從sys.argv解析出命令參數,並自動的產生幫助文檔。
1:create一個parser對象:
創建一個ArgumentParser類型的對象,parser = argparse.ArgumentParser(description = ‘Process some integers‘)
之後的cmd-line的處理,都是通過該object進行調用。
2:增加argument,parser.add_argument(‘--sum‘, dest=‘accumulate‘, action=‘store_const‘, const=sum,default=max,help=‘sum the integers‘)
在增加argument的時候,會有很多option,來表征該參數的很多行為。
3:Parsing argument,parser.parse_args([‘--sum‘, ‘7‘, ‘-1‘, ‘42‘]) 一般會產生一個簡單的namespace類型的object。
修飾一個ArgumentParser objects的選項:
add_argument的選項方法:
1)name、flags,optional的選項,可以是‘-f‘ “--foo”,-表示縮寫,--表示全稱。
必須的選項,‘bar’ 必須有cmd, python.py bar這樣來使用。
2)action,表示接收到該參數,之後的行為以及存儲。
action = ‘store‘,默認的選項,將值保存在自己的數據結構中,
action = ‘store_const‘,val前加const,保存在自己的數據結構中,
action = ‘store_true‘,‘store_false’,轉變為只是保存一個布爾值,
action = ‘append’,將參數按一個list的形式,保存下來,可以有多個參數,
add_argument(‘--foo 1 --foo 2‘, action = ‘append‘),保存list,[1,2]
action = ‘count‘,只是將計數之後的值,保存下來,
也可以自定義action,這時,需要繼承argparse.Action,做新的class,重寫__call__函數。
3)nargs,指定某個選項需要指定的個數。
N,表示n個arguments打包為一個list。
?,表示可選的cmd option,可以指定default的值。
*,cmd_line中的所有元素都打包為一個list。
+,與*類似,但是如果沒有具體指定,會報錯。
4)const和default的cmd_line option。
5)type,argparser接收cmd-line的值,都是按string來接收的,如果需要轉為int/float,需要type選項。
同時也支持FileType,mode=,bufsize=,encoding=,
6)choice,用在checker,檢查輸入值的範圍。
7)required,顯示指明-f/-foo這類的cmdline option必須配置。
8)dest,執行存儲時的變量名。
9)help,指定--help時,的打印信息。
argparse模塊