Python Argparse

本文最后更新于:2022年7月21日 下午

Python Argparse

Python的Argparse库是一个内置的用来获取命令行输入参数的库。简单来说就是解析下面这条语句中python main.py后面这些参数的。

1
python main.py  -v xxxx -m

用法

首先初始化实例,然后对实例添加参数选项,最后解析成对象。

1
2
3
4
5
6
parser = argparse.ArgumentParser()
parser.add_argument(...)
args = parser.parse_args()

# 获取参数
args.参数名

添加普通参数

普通参数就是一个key一个value,最普通的参数类型

1
2
3
4
5
parser.add_argument("-v", "--video",          # 一个参数key可以有两个名字
type=str, # 类型可以是int或者str
required=True, # 是否为必选参数
default="./video1.npy", # 假如非必选,默认值是
help="帮助文本")

无值参数

可以没有value的参数

1
2
3
parser.add_argument("-m", action="store_true")
# 假如输入有参数则会被解析为True,否则False
args.m == True

固定值范围参数

就是value必须从几个选项中选择一个

1
2
parser.add_argument("--feat", choices=["resnet", "vgg"])
# 只能 --feat resnet 或者 --feat vgg

多值参数

value可以是多个值,解析结果为列表

1
2
parser.add_argument('--foo', nargs='*')  # 传递多个参数,可为0
parser.add_argument('--foo', nargs='+') # 至少给这个key传递一个参数

互斥参数

就是在某个组内的参数不允许同时出现两个及以上

1
2
3
group = parser.add_mutually_exclusive_group()
group.add_argument("-a")
group.add_argument("-b")

参考文献

argparse — Parser for command-line options, arguments and sub-commands — Python 3.10.0 documentation


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!