Python 传递零个或可变数量的值以单击。选项
假设我们有以下函数,其中 具有一个可选参数Python 传递零个或可变数量的值以单击。选项,python,command-line-interface,python-click,Python,Command Line Interface,Python Click,假设我们有以下函数,其中 具有一个可选参数exclude,应为 要成为字符串列表,请执行以下操作: @group.command() @click.option(???) def load(exclude = None): # ... 我希望用户能够像这样执行脚本: python script.py load --exclude one two three 或 在这种情况下,我希望exclude是 ['1'、'2'、'3']和['something']。 但是我希望--exclude
exclude
,应为
要成为字符串列表,请执行以下操作:
@group.command()
@click.option(???)
def load(exclude = None):
# ...
我希望用户能够像这样执行脚本:
python script.py load --exclude one two three
或
在这种情况下,我希望exclude
是
['1'、'2'、'3']
和['something']
。
但是我希望--exclude
中的值的数量是可变的,包括0。即,用户应该能够执行
python script.py load
在这种情况下,exclude
应为None
(或[]
,无所谓)
如何使用“单击”来执行此操作
到目前为止,我唯一可行的选择是强制用户使用
python script.py load --exclude "one two three"
然后调用
exclude.split()
根据规定,文档必须具有nargs
中规定的选项数量,因此nargs=2
需要2个值
此外,不会否定多次传递选项的需要
您最可能的解决方案是传递一个字符串并拆分,尽管我没有使用“单击”太深,因此可能有人会有更好的解决方案。单击似乎不支持您想要的方式:
根据规定,文档必须具有nargs
中规定的选项数量,因此nargs=2
需要2个值
此外,不会否定多次传递选项的需要
您最可能的解决方案是传递一个字符串并拆分,尽管我没有太深地使用Click,所以有人可能会有更好的解决方案
python script.py load --exclude "one two three"