参考https://zhuanlan.zhihu.com/p/56922793
用途:使得程序在运行时可以添加命令行参数,并将参数组织成字典形式
创建解析器对象
import argparse
argparse.ArgumentParser(description="PyTorch Object Detection Training")#描述可以任意填
添加可用参数
这里有两种参数,一种带”- -“,一种不带
(1)带"- - "的:optional argument,可选参数,比较常用,因为在命令行传入时需要在参数前指定这个参数的名字,比如
“- -config-file xxx.py”,可读性更强
(2)不带符号的,就直接参数名,被称为位置参数,positional argument。根据在代码中定义的顺序决定其在命令行中的顺序,不需要指定参数名
eg.
import argparse
parser = argparse.ArgumentParser(description='姓名')
parser.add_argument('param1', type=str,help='姓')
parser.add_argument('param2', type=str,help='名')
args = parser.parse_args()
#打印姓名
print(args.param1+args.param2)
>>>python demo.py 三 张
>>>三张
完整的定义:
parser.add_argument(
"--config-file",
default="",
metavar="FILE",
help="path to config file",
type=str,
nargs='+',
required=True,
)
parser.add_argument('integers', type=str, help='传入的数字')
第一个参数为参数名,同时决定是可选参数还是位置参数
default为默认值
metavar为在对本程序使用-h(help)时会显示的信息
help为给读代码的人看的信息
type为传入参数的类型(解析后的类型,即args.参数 调用时返回的类型)
nrgs为传入参数的数量,如不定义,默认只能传一个,’+'表示至少一个
required为指示这个参数是不是必填参数
添加后调用方法
(1)获取所有传入的参数,组织成字典
args = parser.parse_args()
(2)根据参数名以字典的形式调用
print(args.config-file)