gpt4 book ai didi

Python 单击使用选项作为参数

转载 作者:太空宇宙 更新时间:2023-11-03 15:37:00 24 4
gpt4 key购买 nike

我已经使用 argparse 有一段时间了,但我正在过渡到使用 click

如何告诉 click 应使用类似选项的参数,而不必在该参数之前在命令行上传递 --

示例:

@cli.group()
@click.argument('script')
@click.argument('args', nargs=-1)
def run(script, args):
# ...

我希望能够将其运行为:

mycli run foo.py arg1 --arg2

并在 args 列表中包含 --arg2,而不必使用命令行:

mycli run -- foo.py arg1 --arg2

最佳答案

从 Click 4.0 开始,这是可能的。您需要告诉 click 忽略未知选项,并且您希望收集并传入选项。这是您所做的相关更改的示例。

代码:

@click.group()
@click.option('--arg')
def cli(arg):
click.echo('cli arg: %s' % arg)
pass

@cli.command(context_settings=dict(
ignore_unknown_options=True,
help_option_names=[],
))
@click.argument('script')
@click.argument('args', nargs=-1, type=click.UNPROCESSED)
def run(script, args):
click.echo('script: %s' % script)
click.echo(args)

测试:

cli('--arg 3 run foo.py --arg 5 arg1 --arg2 --arg 4 --help'.split())

产品:

cli arg: 3
script: foo.py
('--arg', '5', 'arg1', '--arg2', '"--arg', '4"', '--help')

( Source )

关于Python 单击使用选项作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42457484/

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