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)
此外,我不知道如何选择参数,这意味着用户必须在“基本”或“自定义”之间进行选择。如果他选择“自定义”,他需要添加一些选项。
argument2通过让您成为,我已经成功实现了这一目标click.Command。\n运行下面的代码,我与 CLI 应用程序交互的主要方式是通过组cli。该cli组还有另一个组 ,install作为命令添加。因此,我们有一个带有嵌套组的 CLI。\ninstall有 2 个命令,basic并且custom,如您的示例中所示。
basic不带任何参数,而custom需要 2 个必需参数Options。
调用看起来像这样:
\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\nRun Code Online (Sandbox Code Playgroud)\n您可以在帮助消息中看到嵌套组install充当命令:
\xe2\x9d\xaf myapp\nUsage: myapp [OPTIONS] COMMAND [ARGS]...\n\nOptions:\n --help Show this message and exit.\n\nCommands:\n install\nRun Code Online (Sandbox Code Playgroud)\n如果您要调用install,这就是您将获得的帮助输出。
\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\nRun 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\nRun Code Online (Sandbox Code Playgroud)\n