Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Python argparse顺序提供多个参数时检索参数位置_Python_Arguments_Argparse - Fatal编程技术网

使用Python argparse顺序提供多个参数时检索参数位置

使用Python argparse顺序提供多个参数时检索参数位置,python,arguments,argparse,Python,Arguments,Argparse,这是我的函数参数原型: /myfunction.py--poi_类型1 loc1--poi_类型2 loc2--poi_类型1 loc3 为了理解上下文,POI(POI_类型1和2)是不同性质的兴趣点(类型1是花园,类型2是雕像)。作为回报,我想生成一个连接不同POI类型的图(我请求的目的不是背后的业务逻辑)。图形必须考虑POI参数在命令行中的位置,如何构建图形将取决于POI_类型(1或2) 需要注意的是,用户可以提供他想要的任意数量的POI,对于每个POI,他应该判断它是POI类型1还是POI

这是我的函数参数原型:
/myfunction.py--poi_类型1 loc1--poi_类型2 loc2--poi_类型1 loc3

为了理解上下文,POI(POI_类型1和2)是不同性质的兴趣点(类型1是花园,类型2是雕像)。作为回报,我想生成一个连接不同POI类型的图(我请求的目的不是背后的业务逻辑)。图形必须考虑POI参数在命令行中的位置,如何构建图形将取决于POI_类型(1或2)

需要注意的是,用户可以提供他想要的任意数量的POI,对于每个POI,他应该判断它是
POI类型1
还是
POI类型2

我首先开始收集用户给出的参数如下:

import argparse
parser = argparse.ArgumentParser(description='generate graph', formatter_class=argparse.ArgumentDefaultsHelpFormatter)
parser.add_argument('--poi_type1', nargs=1, action='append', type=check_target)
parser.add_argument('--poi_type2', nargs=1, action='append', type=not_supported)
args = parser.parse_args()
我的问题是,如果用户同时提供
poi_type1
poi_type2
,我不知道参数的提供顺序

例如:

./myfunction.py --poi_type1 loc1 --poi_type2 loc2 --poi_type1 loc3
返回与相同的结果

./myfunction.py --poi_type2 loc1 --poi_type1 loc2 --poi_type1 loc3

我不知道如何调整我的脚本,使其工作,因为我想。。。有什么想法吗?谢谢大家!

直接解析
sys.argv
。用
nargs=2定义一个'--poi'。用户将输入'--poi类型1 loc1--poi类型2 loc2--poi类型1 loc3',直接解析
sys.argv
。使用
nargs=2
定义'--poi'。用户将输入“--poi类型1 loc1--poi类型2 loc2--poi类型1 loc3”,