使用 python argparser,有没有办法指定在两个参数中,只能提供 1 个

Using python argparser, is there a way to specify that out of two args, only 1 can be provided

用例:

我正在使用 python argparser 并收集用户输入作为参数。

假设允许用户为参数 foobar 提供输入。 我想限制它,说用户可以为参数 foo 或 bar 提供值,但不能同时为两者提供值。

示例代码:

import argparse

my_parser = argparse.ArgumentParser()
my_parser.add_argument('foo',
                       help='xxxxxxxxxxx')
my_parser.add_argument('bar',
                       help='xxxxxxxxxxx')
args = my_parser.parse_args()

print(vars(args))

这可以直接在 argparser 中实现吗?或者我需要在我的 python 代码中处理这个

是的,你可以这样做:

my_group = my_parser.add_mutually_exclusive_group(required=False)
my_group.add_argument('foo', help='xxxxxxxxxxx')
my_group.add_argument('bar', help='xxxxxxxxxxx')

根据需要设置required。我选择 false 基于你的措辞“用户可以为参数 foo 或 bar 提供值,而不是两者。”