gpt4 book ai didi

python - 如何将多个参数列表传递给@click.option

转载 作者:太空狗 更新时间:2023-10-29 20:15:04 28 4
gpt4 key购买 nike

我想通过命令行使用这种参数调用 python 脚本(列表可以是任何大小,例如 3):

python test.py --option1 ["o11", "o12", "o13"] --option2 ["o21", "o22", "o23"]

使用点击。从文档中,没有任何地方说明我们可以使用列表作为 @click.option 的参数。

当我尝试这样做时:

#!/usr/bin/env python
import click

@click.command(context_settings=dict(help_option_names=['-h', '--help']))
@click.option('--option', default=[])
def do_stuff(option):

return

# do stuff
if __name__ == '__main__':
do_stuff()

在我的 test.py 中,通过从命令行调用它:

python test.py --option ["some option", "some option 2"]

我得到一个错误:

Error: Got unexpected extra argument (some option 2])

我不能真正使用可变参数,因为每个命令只允许 1 个可变参数(http://click.pocoo.org/5/arguments/#variadic-arguments)

因此,如果有人能指出正确的方向(最好使用点击),我将不胜感激。

最佳答案

如果您不坚持传递看起来像列表的东西,而只是想传递多个可变参数,您可以使用 multiple 选项。

来自click documentation

@click.command()
@click.option('--message', '-m', multiple=True)
def commit(message):
click.echo('\n'.join(message))
$ commit -m foo -m bar
foo
bar

关于python - 如何将多个参数列表传递给@click.option,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47631914/

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