首页 > 解决方案 > 使用 Python argparse 按顺序提供多个参数时检索参数位置

问题描述

这是我的函数参数原型: ./myfunction.py --poi_type1 loc1 --poi_type2 loc2 --poi_type1 loc3

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

需要注意的是,用户可以根据需要提供任意数量的 POI,并且对于每个 POI,他应该判断它是poi_type1还是poi_type2

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

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

我不知道如何调整我的脚本以使其按我想要的方式工作......有什么想法吗?谢谢!

标签: pythonargumentsargparse

解决方案


推荐阅读