英文:
Choose only one from 2 args with Python ArgumentParser
问题
我使用ArgumentParser
来解析函数的一些参数。
我想限制用户只能使用count
或show
中的一个,不能同时使用两者。
如何限制这一点?
parser = argparse.ArgumentParser(
formatter_class=argparse.RawTextHelpFormatter,
description="""一些描述""",
)
parser.add_argument(
"count",
nargs="?",
type=lambda n: max(int(n, 0), 1),
default=1,
)
parser.add_argument(
"--show",
"-s",
action="store_true",
default=False,
)
parser.add_argument(
"--decode",
"-d",
action="store_true",
default=False,
)
英文:
I use ArgumentParser
to parse some arguments for function.
I want to limit that that user can use or count
or show
, he can't use then both.
How can I limit that?
parser = argparse.ArgumentParser(
formatter_class=argparse.RawTextHelpFormatter,
description="""some desc""",
)
parser.add_argument(
"count",
nargs="?",
type=lambda n: max(int(n, 0), 1),
default=1,
)
parser.add_argument(
"--show",
"-s",
action="store_true",
default=False,
)
parser.add_argument(
"--decode",
"-d",
action="store_true",
default=False,
)
答案1
得分: 2
你可以使用argparse中的互斥组来限制特定参数的使用。
parser = argparse.ArgumentParser(
formatter_class=argparse.RawTextHelpFormatter,
description="一些描述",
)
group = parser.add_mutually_exclusive_group()
group.add_argument(
"--show",
"-s",
action="store_true",
help="显示某些内容",
)
group.add_argument(
"--decode",
"-d",
action="store_true",
help="解码某些内容",
)
parser.add_argument(
"--count",
"-c",
type=int,
default=1,
help="计算某些内容",
)
args = parser.parse_args()
英文:
You can use mutually exclusive groups in argparse to limit the use of certain arguments.
parser = argparse.ArgumentParser(
formatter_class=argparse.RawTextHelpFormatter,
description="""some desc""",
)
group = parser.add_mutually_exclusive_group()
group.add_argument(
"--show",
"-s",
action="store_true",
help="Show something",
)
group.add_argument(
"--decode",
"-d",
action="store_true",
help="Decode something",
)
parser.add_argument(
"--count",
"-c",
type=int,
default=1,
help="Count something",
)
args = parser.parse_args()
答案2
得分: 1
add_mutually_exclusive_group方法创建一个新的互斥的参数组。required=True参数确保用户必须选择组中的一个选项。
group = parser.add_mutually_exclusive_group(required=True)
group.add_argument(...)
group.add_argument(...)
group.add_argument(...)
英文:
The add_mutually_exclusive_group method creates a new mutually exclusive argument group. The required=True argument ensures that the user has to select one of the options in the group.
group = parser.add_mutually_exclusive_group(required=True)
group.add_argument(...)
group.add_argument(...)
group.add_argument(...)
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论