gpt4 book ai didi

python - 如果存在另一个参数,如何禁用一个参数?

转载 作者:太空狗 更新时间:2023-10-30 01:09:00 26 4
gpt4 key购买 nike

在我的脚本 argparse 中,如果传递另一个相反类型的参数,一些参数将会发生冲突。如果 --arg1 已经存在,我想禁用 --arg2。目前我还没有找到任何方法。

最佳答案

使用 mutually exclusive group :

parser = argparse.ArgumentParser(prog='PROG')
group = parser.add_mutually_exclusive_group()
group.add_argument('--arg1')
group.add_argument('--arg2')

只允许使用组中的一个参数。

演示:

>>> import argparse
>>> parser = argparse.ArgumentParser(prog='PROG')
>>> group = parser.add_mutually_exclusive_group()
>>> group.add_argument('--arg1')
_StoreAction(option_strings=['--arg1'], dest='arg1', nargs=None, const=None, default=None, type=None, choices=None, help=None, metavar=None)
>>> group.add_argument('--arg2')
_StoreAction(option_strings=['--arg2'], dest='arg2', nargs=None, const=None, default=None, type=None, choices=None, help=None, metavar=None)
>>> parser.parse_args(['--arg1', 'foo'])
Namespace(arg1='foo', arg2=None)
>>> parser.parse_args(['--arg2', 'bar'])
Namespace(arg1=None, arg2='bar')
>>> parser.parse_args(['--arg1', 'foo', '--arg2', 'bar'])
usage: PROG [-h] [--arg1 ARG1 | --arg2 ARG2]
PROG: error: argument --arg2: not allowed with argument --arg1

关于python - 如果存在另一个参数,如何禁用一个参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17805600/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com