基于 Python 和 Click 的 CLI 应用程序如何需要选项

Wor*_*ddy 5 python command-line-interface python-click

我正在使用 Python 和 Click 库构建 CLI 应用程序。

我如何实现以下用例:

首先,我只希望子命令后跟一个参数,不需要任何选项:

$ myapp subcommand argument
Run Code Online (Sandbox Code Playgroud)

这是直截了当的。

但是我如何编写代码,如果设置了参数2,还需要一些选项?

$ myapp subcommand argument2 -o1 abc -o2 def
Run Code Online (Sandbox Code Playgroud)

例如:

不需要任何选项:

$ ./myapp.py install basic
Run Code Online (Sandbox Code Playgroud)

需要以下选项:

$ ./myapp.py install custom -o1 abc -o2 def
Run Code Online (Sandbox Code Playgroud)

此外,我不知道如何选择参数,这意味着用户必须在“基本”或“自定义”之间进行选择。如果他选择“自定义”,他需要添加一些选项。

aft*_*ner 3

argument2通过让您成为,我已经成功实现了这一目标click.Command。\n运行下面的代码,我与 CLI 应用程序交互的主要方式是通过组cli。该cli组还有另一个组 ,install作为命令添加。因此,我们有一个带有嵌套组的 CLI。\ninstall有 2 个命令,basic并且custom,如您的示例中所示。

\n

basic不带任何参数,而custom需要 2 个必需参数Options

\n

调用看起来像这样:

\n
\xe2\x9d\xaf myapp install custom -o1 arg1 -o2 def\nThis is a custom install with option1: arg1 and option2: def\n\n\xe2\x9d\xaf myapp install basic\nExecuting a basic install\n
Run Code Online (Sandbox Code Playgroud)\n

您可以在帮助消息中看到嵌套组install充当命令:

\n
\xe2\x9d\xaf myapp\nUsage: myapp [OPTIONS] COMMAND [ARGS]...\n\nOptions:\n  --help  Show this message and exit.\n\nCommands:\n  install\n
Run Code Online (Sandbox Code Playgroud)\n

如果您要调用install,这就是您将获得的帮助输出。

\n
\xe2\x9d\xaf myapp install\nUsage: myapp install [OPTIONS] COMMAND [ARGS]...\n\nOptions:\n  --help  Show this message and exit.\n\nCommands:\n  basic\n  custom\n
Run Code Online (Sandbox Code Playgroud)\n

这是代码:

\n
\xe2\x9d\xaf myapp\nUsage: myapp [OPTIONS] COMMAND [ARGS]...\n\nOptions:\n  --help  Show this message and exit.\n\nCommands:\n  install\n
Run Code Online (Sandbox Code Playgroud)\n