一、参数解析
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函数是实现命令行解析工具的核心部分,了解其参数和使用方法对命令行应用开发非常重要。