关于python parser.parse_args()中解析参数

import argparse

 parser = argparse.ArgumentParser(prog='PROG')
parser.add_argument('-f','--foo') # 其实这里面 -f,--foo都是可选参数,就是传参的时候可以传,也可以不传

但是如果设置了"-f",和"--foo",那解析后的值是存放着foo中的,即默认dest是foo

关于python parser.parse_args()中解析参数_第1张图片

如果只设置一个,这dest=f1,就是解析后的结果存放在f1中,想要获取到存放在f1中的结果,要这样

args = parser.parse_args()
results = args.f1

以上图中的dest就是结果存放的标志,一般也可以在add_argument中设置,这样就可以不用默认的了,比如如下:

关于python parser.parse_args()中解析参数_第2张图片

args = parser.parse_args()
这个parse_args()里面如下,其中有一个namespace

关于python parser.parse_args()中解析参数_第3张图片

这个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(),因为这个方法会对传入进来的参数进行解析,这里为了方便,这样设置。

关于python parser.parse_args()中解析参数_第4张图片

 

关于"metavar"参数理解:

https://docs.python.org/dev/library/argparse.html#metavar

这个参数一般用在打印参数help信息的时候,就是改变display name。

一般情况下不加这个参数打印如下:

关于python parser.parse_args()中解析参数_第5张图片

 

加了"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()

关于python parser.parse_args()中解析参数_第6张图片

关于"nargs", 通常没有这个参数时,一个--参数或者-参数关联一个值,但是如果有这个参数,就看这个参数设置的多少,如下:

关于python parser.parse_args()中解析参数_第7张图片

 

 

你可能感兴趣的:(python)