如何在 Python argparse 中解析此命令行参数?

How to parse this command-line arguments in Python argparse?

我想解析我的命令行参数,例如:

python main.py Option_1 -r ... -m ...
python main.py Option_2 -r ... -m ...

我要求我的第一个参数是一个字符串,它必须是 Option_1Option_2。第一个参数之后的所有内容都是正常的 option/value 对。

我似乎找不到使用 argparse 库的方法。我可以轻松抓取 option/value 对,但是如何解析 Option_1Option_2,它们没有像 -r-m 这样的标志?

尝试使用选项的位置参数:

parser.add_argument('pos', choices=['Option_1','Option_2'], help=...)

它将接受这 2 个字符串中的一个作为第一个字符串,但实际上不一定是第一个。 -r-m 参数中的一个或多个将在第一个 positional.

之前被接受

在解析工作之前从 sys.argv 中删除我想要的参数。

sys.argv.pop(1)  
parser = argparse.ArgumentParser()