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

7 浏览
0 Comments

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

我想通过命令行调用一个Python脚本,并使用这种参数(列表可以是任意大小,例如有3个):python test.py --option1 ["o11", "o12", "o13"] --option2 ["o21", "o22", "o23"],使用click库。从文档中,并没有明确说明我们可以将列表作为参数传递给@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
# 做一些事情
if __name__ == '__main__':
    do_stuff()

,在我的test.py中,通过命令行调用它:python test.py --option ["some option", "some option 2"],我得到一个错误:

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

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

所以如果有人能指点我正确的方向(最好使用click库),将不胜感激。

0