Argparse使用指南
argparse使用方法
基本使用方法
创建解析
1
2import argparse
parser = argparse.ArgumentParser()添加参数
1
parser.add_argument('square', help="display a square of a given number", type=int)
解析参数
1
args = parser.parse_args()
使用参数
1
print(args.square ** 2)
如何添加参数
add_argument()
可以设置的选项非常多
1 | parser.add_argument([], action=[], nargs=[], const=[], default=[], type=[], choices=[], required=[], help=[], metavar=[], dest=[]) |
但是我们比较常用的是下面这些参数
1 | parser.add_argument('--square', type=int, default=1, help='display a square of a given number') |
为了可读性,一般选择使用可选参数
可选参数和必选参数的区别
- 可选参数前面有
--
或者-
, 在命令行中不赋值的话,会传递default
的值 - 必选参数没有
--
或者-
, 必选参数即便是有default
值在使用命令行的时候也需要赋值
action参数的作用
- store: 默认操作,将参数存储在一个变量中,参数更新后,不保留之前的参数值
- append:存储一个列表,将参数每次的赋值都添加到列表中
例如:
1 | import argparse |
运行 python use_argparse.py --foo 1 --foo 2
输出 2
;
1 | import argparse |
运行 python use_argparse.py --foo 1 --foo 2
输出 ['1', '2']
- count:计算一个关键字参数出现的次数
例如:
1 | import argparse |
运行 python use_argparse.py -vvv
输出 3
运行 python use_argparse.py -v -v -v
输出 3
nargs参数的作用
关联不同数目的命令行参数到单一动作,因为
action
是单一项目消耗单一命令行参数
- N:可以且必须传入
N
个参数,然后被聚集到一个列表中 - ?:首先从命令行中获取,若没有则从const中获取,仍然没有则从default中获取
- *、+:任意数量参数
- argparse.REMAINDER:所有剩余的参数均转化为一个列表转化给此项
例如:
1 | import argparse |
运行 python use_argparse.py 1
输出 error
运行 python use_argparse.py 1 2
输出 ['1', '2']
1 | import argparse |
运行 python use_argparse.py 1
输出 ['1']
运行 python use_argparse.py 1 2
输出 ['1', '2']
注意事项
导入argparse
后如果将.py
文件命令为argparse.py
,则会报错,修改文件名即可。