带有python Click库选项的可选CLI参数

问题描述 投票:0回答:1

[我在解析某些CLI选项时与Python Click库有一个难题。

我希望有一个选项可以自己充当标志,但是可以选择接受字符串值。例如:

  1. [$ myscript⇒选项= False

  2. [$ myscript -o⇒选项= True

  3. [$ myscript -o foobar⇒选项= Foobar

此外,我希望该选项“急切”(例如,以“点击”一词在回调后中止执行,但是现在可以忽略。)>


当我这样定义参数时:

@click.command()
@click...
@click.option("-o", "option", is_flag=True, default=False)
def myscript(..., option):

我实现了示例1和2,但是3自然是不可能的,因为该标志仅检测到存在/不存在。


当我这样定义参数时:

@click.command()
@click...
@click.option("-o", "--option", default="") # Let's assume I will cast empty string to False
def myscript(..., option):

我达到1和3,但是2会失败,并带有Error: -c option requires an argument


这似乎并不像是世界之外的情况,但是我似乎无法实现这一目标或找到表现出这种行为的示例。

我如何定义一个像下面这样解析的@click.option

  • 未设置时的False
  • True设置但没有值
  • [str当设置值时

解析某些CLI选项时,我对Python Click库感到困惑。我希望有一个选项可以自己充当标志,但是可以选择接受字符串值。例如:$ myscript⇒option = ...

python click command-line-interface
1个回答
0
投票

我设法实现此行为的一种方法是通过实际使用以下参数。我将其发布为一种变通方法,同时尝试查看是否可以使用某个选项来完成此操作,并相应地更新我的信息

© www.soinside.com 2019 - 2024. All rights reserved.