1. 程式人生 > >python的引數解析argparse模組的學習

python的引數解析argparse模組的學習

add_argument()函式


ArgumentParser.add_argument(name or flags[, action][, nargs][, const][, default][, type][,choices][, required][, help][, metavar ][, dest])

  • name or flags:Either a name or a list option strings,e.g. foo or -f,–foo.
  • action:命令列有此引數的時候 應該採取的操作
  • nargs:使用命令列引數的數量
  • const:操作和標記選擇所需要的常量
  • default:如果空缺引數時產生的值
  • type:命令列值應該轉換的型別
  • choices:引數允許值的容器
  • required:是否可以省略引數
  • help:對引數的簡短的描述
  • metavar:變數在使用上下文中的名字
  • dest:新增到parse_args()返回的物件中的屬性的名稱。

引數的型別

  • 位置引數 :像檔名列表一樣
    parser.add_argument(’ bar '),不需要指明引數變數名字。(類似於函式的位置引數和可選引數一樣)
  • 可選擇引數 :-f 或者 --f
    parser.add_argument(’ -f ')
    在傳遞引數時,需要明示的寫出引數的名字,比如 -f FOO。結果就是將f = 'FOO'

action


ArgumentParser物件會將一個命令列的引數與一個動作繫結。這些動作可以做任何事情,儘管大多數的動作只是向parse_args()返回的物件新增一個屬性。

提供的引數如下:

  • store
    儲存引數的變數值,這個是預設的動作,比如:
parser = argparse.ArgumentParser()
parser.add_argument('--foo')
parser.parser_args('--foo 1'.split())
輸出結果:Namesapce(foo=1’)
  • store_const
    儲存由const指定的關鍵字。
parser =  argparse..ArgumentParser()
parser.add_argument('--foo',action ='store_const',const = 42)
parser.parse_args(['--foo'])
輸出結果:Namesapce(foo= 42)
  • store_true & store_false
    儲存bool型別的值:True 或者 False
parser = argparse.ArgumentParser() parser.add_argument('--foo', action='store_true')
parser.add_argument('--bar', action='store_false')
parser.add_argument('--baz', action='store_false')
parser.parse_args('--foo --bar'.split())
Namespace(foo=True, bar=False, baz=True)
  • append
  • append_const
  • count
  • help
  • version

nargs介紹