轉自:https://www.jb51.net/article/190589.htm
1. nargs
nargs:ArgumentParser對象通常將一個動作與一個命令行參數關聯。nargs關鍵字參數將一個動作與不同數目的命令行參數關聯在一起:
nargs=N,一個選項后可以跟多個參數(action='append'時,依然是一個選項后跟一個參數,只不過選項可以多次出現),參數的個數必須為N的值,這些參數會生成一個列表,當nargs=1時,會生成一個長度為1的列表。
nargs=?,如果沒有在命令行中出現對應的項,則給對應的項賦值為default。特殊的是,對於可選項,如果命令行中出現了此可選項,但是之后沒有跟隨賦值參數,則此時給此可選項並不是賦值default的值,而是賦值const的值。
nargs=*,和N類似,但是沒有規定列表長度。
nargs=+,和*類似,但是給對應的項當沒有傳入參數時,會報錯error: too few arguments。
nargs=argparse.REMAINDER,所有剩余的參數,均轉化為一個列表賦值給此項,通常用此方法來將剩余的參數傳入另一個parser進行解析。如果nargs沒有定義,則可傳入參數的數量由action決定,通常情況下為一個,並且不會生成長度為一的列表。