我想通过命令行使用这种参数调用 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.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/