1. 程式人生 > >argparse模塊

argparse模塊

max info 自定義 pen argv 行存儲 ger 變量 沒有

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模塊