argparse 处理命令行参数
Contents
argparse模块 主要用来处理传入的命令行参数,之前版本有使用 optparse模块 实现类似的效果,不过 optparse模块 已停止更新,并不推荐使用了。
argparse模块 使用:
- ArgumentParser - 创建parser实例。
- add_argument - 添加命令行参数。
- parse_args - 处理参数。
其中关键的部分是 add_argument。
|
|
|
|
上面添加了一个参数a,命令行后没 -a 参数时,使用的是默认值 False,使用 -a 后,会根据 action 参数的设置改变。
ArgumentParser类 继承了 _ActionsContainer类,后者在初始化时,会注册很多个 action事件。
|
|
在使用 add_argument函数 添加 命令行参数 时,会根据指定的 action参数 在注册字典中找到对应的 命令行参数 对应的 action类。
|
|
action 的类型主要有以下几种:
- store - 默认类型,存储。
- store_const - 存储类型,参数后无需跟数据,使用后,将const参数对应的值赋于参数。
- store_true/store_false - 存储bool类型。
- append - 存储列表类型。
- append_const - 存储列表类型,参数后无需跟数据,使用后,将const参数对应的值赋于参数。
- count - 统计参数出现的个数。
- version - 版本信息。
这儿有个很好的例子: https://pymotw.com/3/argparse/index.html#argument-actions。
add_argument函数 还有一些其他的传入参数,解释如下:
- dest - 解析出来的参数在程序中的参数名。
- default - 默认值。
- const - 与action参数有关,如果设置了,则 store_const 或 append_const - 会使用 const参数 传入的值。
- type - 参数解析后的类型。
- metavar - 在help中显示在usage说明参数后面跟随的变量。