Python 模塊 argparse-命令行選項和參數的解析

Python 模塊 argparse-命令行選項和參數的解析

添加參數


argparse 根據定義的參數執行不同的操作(action),使用方法 add_argument() 向解析器添加參數,默認的操作是存儲參數值,如果提供了類型(type),則參數值會轉換為指定的類型,如果指定參數(dest),則參數值會保存在對應的屬性中,使用 args.prop 訪問。

解析


在參數添加完之後,就可以使用 parse_args() 方法來解析命令行參數了,默認參數取的是 sys.argv[1:],也可以自己提供值。

返回的值是一個 Namespace 實例,它包括了傳遞的參數和生成的值。

簡單的例子


Python 模塊 argparse-命令行選項和參數的解析

執行:

Python 模塊 argparse-命令行選項和參數的解析

本例設置了三個參數:

  • 參數 a 使用 action=store_true 設置為一個布爾型,如果不傳 a的話,default 提供了默認值 False
  • 參數 b 使用 dest 參數,設置為 foo,這樣在返回的 Namespace 實例上,可以使用 foo 屬性訪問 b 的值
  • 參數 c 和 b 類似,又多增加了 type 參數,它會把輸入值轉為整數類型

長格式的選項和單字符的選項格式以相同的方式處理。

Python 模塊 argparse-命令行選項和參數的解析

執行:

Python 模塊 argparse-命令行選項和參數的解析

argparse 解析命令行時,會自動處理必選和可選的參數。請看下面的例子:

Python 模塊 argparse-命令行選項和參數的解析

執行:

Python 模塊 argparse-命令行選項和參數的解析

上面自動把命令行的參數按順序解析了。也可以使用 -h 查看幫助信息。

Python 模塊 argparse-命令行選項和參數的解析

參數的操作 Argument Action


解析參數時,包含6種內置的操作:

  • store 默認選項,存儲值,可能根據 type 參數轉換類型
  • store_const 使用關鍵字參數 const 存儲值,通常用於標誌位
  • store_true / store_false 是 store_const 的特殊形式,只存儲 True 和 False
  • append 保存為一個列表,通常用於接收多個命令行參數
  • append_const 根據關鍵字參數 const 保存為一個列表
  • version 打印版本然後退出

下面例子使用了每種操作類型:

Python 模塊 argparse-命令行選項和參數的解析

執行:

help:

Python 模塊 argparse-命令行選項和參數的解析

store:

Python 模塊 argparse-命令行選項和參數的解析

store_const:

Python 模塊 argparse-命令行選項和參數的解析

store_true:

Python 模塊 argparse-命令行選項和參數的解析

store_false:

Python 模塊 argparse-命令行選項和參數的解析

append:

Python 模塊 argparse-命令行選項和參數的解析

append_const:

Python 模塊 argparse-命令行選項和參數的解析

version:

Python 模塊 argparse-命令行選項和參數的解析


分享到:


相關文章: