import argparse
parser = argparse.ArgumentParser(prog='PROG')
parser.add_argument('-f','--foo') # 其实这里面 -f,--foo都是可选参数,就是传参的时候可以传,也可以不传
但是如果设置了"-f",和"--foo",那解析后的值是存放着foo中的,即默认dest是foo
如果只设置一个,这dest=f1,就是解析后的结果存放在f1中,想要获取到存放在f1中的结果,要这样
args = parser.parse_args()
results = args.f1
以上图中的dest就是结果存放的标志,一般也可以在add_argument中设置,这样就可以不用默认的了,比如如下:
args = parser.parse_args() 这个parse_args()里面如下,其中有一个namespace
这个namespace就是一个类似与键值对的list,如下:
parser.add_argument('-one','--oneTest')
parser.add_argument('-two','--twoTest')
parser.add_argument('-three','--threeTest')
parser.parse_args(['-one','1','-two','2','-three','3']) # 解析结果,默认是parser.parse_args(),因为这个方法会对传入进来的参数进行解析,这里为了方便,这样设置。
关于"metavar"参数理解:
https://docs.python.org/dev/library/argparse.html#metavar
这个参数一般用在打印参数help信息的时候,就是改变display name。
一般情况下不加这个参数打印如下:
加了"metavar"参数情况:
import argparse
parser = argparse.ArgumentParser(prog='PROG')
parser.add_argument('-one',metavar='changeOneDisplayName')
parser.add_argument('-two')
parser.add_argument('three')
parser.print_help()
关于"nargs", 通常没有这个参数时,一个--参数或者-参数关联一个值,但是如果有这个参数,就看这个参数设置的多少,如下: