添加參數
argparse 根據定義的參數執行不同的操作(action),使用方法 add_argument() 向解析器添加參數,默認的操作是存儲參數值,如果提供了類型(type),則參數值會轉換為指定的類型,如果指定參數(dest),則參數值會保存在對應的屬性中,使用 args.prop 訪問。
解析
在參數添加完之後,就可以使用 parse_args() 方法來解析命令行參數了,默認參數取的是 sys.argv[1:],也可以自己提供值。
返回的值是一個 Namespace 實例,它包括了傳遞的參數和生成的值。
簡單的例子
執行:
本例設置了三個參數:
- 參數 a 使用 action=store_true 設置為一個布爾型,如果不傳 a的話,default 提供了默認值 False
- 參數 b 使用 dest 參數,設置為 foo,這樣在返回的 Namespace 實例上,可以使用 foo 屬性訪問 b 的值
- 參數 c 和 b 類似,又多增加了 type 參數,它會把輸入值轉為整數類型
長格式的選項和單字符的選項格式以相同的方式處理。
執行:
argparse 解析命令行時,會自動處理必選和可選的參數。請看下面的例子:
執行:
上面自動把命令行的參數按順序解析了。也可以使用 -h 查看幫助信息。
參數的操作 Argument Action
解析參數時,包含6種內置的操作:
- store 默認選項,存儲值,可能根據 type 參數轉換類型
- store_const 使用關鍵字參數 const 存儲值,通常用於標誌位
- store_true / store_false 是 store_const 的特殊形式,只存儲 True 和 False
- append 保存為一個列表,通常用於接收多個命令行參數
- append_const 根據關鍵字參數 const 保存為一個列表
- version 打印版本然後退出
下面例子使用了每種操作類型:
執行:
help:
store:
store_const:
store_true:
store_false:
append:
append_const:
version:
閱讀更多 趣喜歡編程 的文章