问题标签 [subparsers]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 如何使用 argparse 处理 CLI 子命令
我需要实现程序接受子命令的命令行界面。
例如,如果程序名为“foo”,则 CLI 看起来像
cmd1
并且cmd3
必须与它们的至少一个选项一起使用,并且三个cmd*
参数始终是互斥的。
我正在尝试在 argparse 中使用子解析器,但目前没有成功。问题在于cmd2
,它没有参数:
如果我尝试添加不带参数的子解析器条目,则返回的命名空间parse_args
将不包含任何告诉我选择了此选项的信息(请参见下面的示例)。如果我尝试将cmd2
作为参数添加到parser
(而不是子解析器),那么 argparse 将期望该cmd2
参数后跟任何子解析器参数。
有没有一种简单的方法来实现这一点argparse
?用例应该很常见……</p>
以下是我迄今为止所尝试的更接近我需要的内容:
python - 如何检查特定的子解析器?
如何检查特定的子解析器?
python - Python argparse,根据父参数值提供不同的参数
这就是我想做的:一个看起来像 git 命令行为的命令。无论您键入 git commit 还是 git checkout,您都不会得到相同的选项。但在我的情况下,我想根据这样的参数值(文件名)提供不同的参数:
是否可以使用 python 和 argparse 来做这种事情?
到目前为止我尝试过的是:
我不知道我是否应该使用子解析器或子解析器或组,我有点迷失在 argparse 提供的所有可能性中
python - Python argparse subparser 的有效用法?
我打算使用 argparse 库编写命令,这是我的命令结构:
在这里,本地有多个命令分组,例如本地提交,本地添加等。例如 [-d my_address] 在 main 中解析,本地差异之后的所有开关都由为本地差异执行的函数一起解析。
同样,还有一个命令组与本地并行;说全球。
开关 -d 不与 -r 混合。因此,解析器解析 -r 不知道 -d ,反之亦然。
是否可以使用 argparse 来实现这一点?如果是的话,有人可以建议我一个粗略的算法来做到这一点。如果不是,在 python 中还有什么其他可能的方法来做到这一点?谢谢。
python - 是否可以将子解析器(来自 Python argparse)命名为“--name”甚至“-n”?
我已经开始使用,argparse
因为我必须为邮件脚本编写 Unix 风格的参数解析。
使用提供文件名邮件程序的“自动”选项,它将执行作为文件名接收的脚本,获取准备好的邮件并发送它。在第二种模式下--manual
,它应该能够从头开始构建任何邮件——一个文件作为内容,几个附件,几个提供邮件列表的选项。我真的很想在那里使用--long_opt
约定(也许-short_opt
也是),但如果我理解我应该使用子解析器。
是否可以将 subparser 命名为'--name'
或什至'-n'
?现在,我想不是 - 我有一个错误。
示例用例:
广告。4) ALL_DEVELOPERS 可以是字符串或整数(数据库中组的键)
下面的代码:
那太好了,但是我想在这里解析很多参数(并且所有参数都是必需的),并且在第二个选项中,我只需要一个路径来使用脚本来完成所有工作:
我有的:
如果不可能,我应该使用 _parse_known_args_ 函数还是这是个坏主意,只留下名称“手动”和“自动”,因为它们看起来足够清晰?
python - 具有默认值和必需的 Argparser
我尝试构建一个 argparser,其中一个解析器应该具有默认值,并且也是必需的。到目前为止,我有以下内容:
当我从 CLI 运行它时,我收到一个错误:
我明白为什么会出现这种情况,因为我不包括--type
在 CLI 中。这就是我想要实现的,即使我没有在 CLI 上包含解析器选项,也会设置默认值。
无论如何要运行这个?
django - 是否可以在 django 管理命令中创建子解析器?
标题确实说明了一切,但我目前有这个,但它不起作用:
我的具体想法是创建一个具有子命令的命令,用于下载 XML 内容或将其解析到数据库中。
python - argparse:解析多个子命令
做了一些研究,但找不到任何可行的解决方案。我正在尝试解析以下命令行,其中“test”和“train”是两个独立的子命令,每个子命令都有不同的参数:
我一直在尝试使用两个子解析器('test','train'),但似乎当时只能解析一个。让主解析器的那些子解析器父级也很棒,例如命令'-a'不必同时添加到子解析器'train'和'test'
有什么解决办法吗?
python - 其他参数隐含的 argparse 子解析器
定义子解析器的通常方法是
并且子解析器将被调用
我正在实现一个调用多个转换器的包。如果我使用通常的子解析器方法,我将不得不这样做
这既重复又容易出错,因为用户可能会调用
我更希望从主解析器自动确定子解析器,以便用户可以使用命令
and会从andargparse
中确定 subparser并调用 subparser来解析. 当然,这里是特定于子解析器的。ext1_to_ext2
file.ext1
file.ext2
ext1_to_ext2
EXTRA
EXTRA
我尝试为每个转换器使用add_argument_group
参数组(
我尝试使用parse_known_args
两个位置参数,确定并使用适当的子解析器来解析剩余的参数,但是很难从帮助消息中为用户提供转换器列表及其参数。
有没有办法做到这一点?
python - Python argparse:在帮助字符串中获取子解析器程序的名称
我正在为带有各种子解析器的 python 模块编写参数解析器。我的目标是有一个共享的参数,其参数构造函数被传递给多个孩子:
所需的输出将类似于
当我使用这个确切的设置时,我得到的master prog1
不是. 我应该在标记的行中更改什么以获得所需的结果?prog1
foo
#Line of interest