一、參數解析
Python中的 argparse 模塊是一個命令行解析工具。它可以用來解析命令行參數,並生成幫助文檔。在 argparse 中,add_argument函數是最核心的部分。它負責從命令行指定的參數中解析出參數值。add_argument函數主要包括以下幾個方面:
二、add_argument參數窗口
add_argument() 函數定義了命令行選項,如何解析命令行參數以及如何產生幫助信息。下面是 add_argument 中的參數窗口及其說明:
parser.add_argument(name or flags...[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest])
1. name or flags
命令行參數的名字或者選項,如 foo 或者 -f, –foo。Positional arguments 和 Optional arguments 中的參數具體寫法:
- positional argument
parser.add_argument("pos_arg", help="positional arg help")
parser.add_argument("-o", "--optional_arg", help="optional arg help")
2. action
在參數輸入之後的動作,默認為 store。其他可選參數有:
- store_true, store_false:如果設置了這個值,則存儲 True 或 False。
- append:將遇到每個參數的值依次存儲在一個列表中。
- append_const:將 const 值附加到列表中。
- count:統計在命令行中出現的次數。
3. nargs
命令行參數需要的值數量。可選參數:
- nargs=N,表示要獲取 N 個值,如 「script.py arg1 arg2 … argN」,這裡 nargs=3。
- nargs=?,表示要獲取 0 或 1 個值。
- nargs=’*’, 表示獲取 0 或多個值。(這個是可以省略的)
- nargs=’+’,表示獲取 1 或多個值。
4. const
用於一些 action 和 nargs 參數的常量值。默認是 None。
5. default
在命令行沒有指定參數時,默認參數的值。
6. type
命令行參數轉換為的類型。默認是 None。
7. choices
命令行參數可選的值列表。
8. required
命令行參數是否必需。默認是 False。
9. help
參數描述信息。
10. metavar
在使用幫助文檔時,參數的展示名稱。意思就是輸出的時候,以什麼字樣輸出
11. dest
在使用 parse_args() 解析參數時,參數的名稱,默認是 None。
三、add_argument_resolvers
用於自定義解析參數的選項,它允許將參數解析器註冊到ArgParser實例中,以添加或修改參數解析的邏輯層。add_argument_resolvers()期望一個可迭代對象作為參數,其中每個元素都是一個解析器。以下示例演示了如何使用 add_argument_resolvers() 來註冊一個檢查文件是否存在的解析器:
import argparse import os class FileExistAction(argparse.Action): def __call__(self, parser, namespace, values, option_string=None): if not os.path.exists(values): parser.error(f"file '{values}' does not exist") setattr(namespace, self.dest, values) parser = argparse.ArgumentParser() parser.add_argument('--input', action=FileExistAction, help='input file') args = parser.parse_args()
四、add_arguments函數
add_arguments是add_argument的變形,它迭代著接收 argument groups 並一次性將它們添加到 ArgumentParser 對象中。例如:
parser = argparse.ArgumentParser() group = parser.add_argument_group('Group 1') group.add_argument(...) group = parser.add_argument_group('Group 2') group.add_argument(...)
五、結尾
以上就是Python中 add_argument 函數的詳解。在 argparse 模塊中,add_argument函數是實現命令行解析工具的核心部分,了解其參數和使用方法對命令行應用開發非常重要。
原創文章,作者:DJEHW,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/313343.html