问题标签 [docopt]

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.

0 投票
1 回答
811 浏览

python - 在单元测试中制作包含空格的 docopt 解析参数

我在让 docopt 将包含空格的参数解析为适当的字典对象以用于我的单元测试时遇到问题。

这是我目前用来构造参数列表以供 docopt 解析的代码:

我正在为其编写单元测试的代码有 2 个测试,分别给出以下参数:

例如,要添加 -t 参数,我会这样做:

如果我使用上述参数运行我正在测试的脚本,它们会被毫无问题地接受,并且输出符合预期。

但是,如果我运行使用包含空格的参数的单元测试,我会得到以下信息:

其他需要相同 dict 对象(包含相同参数)的单元测试工作正常。

我应该在我的代码中进行哪些更改以使 docopt 像往常一样解析参数?

0 投票
2 回答
2706 浏览

python - 带有 docopt 的选项多重性

我想用于解析可以多次接收相同docopt选项的命令行。有人可以解释一下我该怎么做吗?

一个测试示例:

如果我用 运行它test.py -v,我会得到:

就好像我用 运行它一样test.py -vv,它会显示使用消息(指示命令行无效)。

我想调整选项文档,以便docopt返回:

当仅-v通过 1 并且:

比如说,如果用户通过了-vvv. 这与argparse中的count操作几乎相同。

0 投票
0 回答
325 浏览

python - 可选参数不适用于架构

我正在为使用 docopt 的 CLI 添加使用模式的验证,但我似乎无法选择工作。我想验证:

  • 输入文件存在
  • 使用了有效的选项
  • 如果添加了PATH,则该目录存在。

到目前为止,这是应用程序

运行 DVget -s "c:\test.txt" 给我错误消息“PATH 应该存在”,即使在架构和 docopt 中使用 Optional 时也是如此。有什么建议么?

0 投票
2 回答
1073 浏览

python - 如何在 Python 的 argparse 模块中收集两个选项,每个选项都有多个参数?

我想解析两个长命令行选项 - 文件列表和如下命令:

结果是:

这在 argparse 或任何其他 python CLI 库(如 docopt)中是否可行?

0 投票
2 回答
3349 浏览

python - 如何在docopt中多次指定一个可选参数

我想以一种可以多次指定一个选项(我们称之为comment )的方式设计我的命令行应用程序,例如,

这可以用docopt完成吗?我检查了 docopt 主页,但找不到对同一可选参数多次出现的任何引用。

0 投票
3 回答
6537 浏览

python - Python - docopt 和 argparse 之间的区别

我必须编写一个命令行界面,并且我已经看到我可以使用docoptand argparse.

我想知道两者之间的主要区别是什么,以便我做出明智的选择。

请坚持事实。我不要哇 博士。如此美丽。很有用。

0 投票
0 回答
399 浏览

bash - Docopt 没有设置默认值

我有一个使用 docopts 的 bash 脚本。它在我的 Debian 机器上运行良好,但无法在我的 Ubuntu 笔记本电脑上设置默认值。这是文档代码:

  • 我找到了两个空格的要求并且已经检查过了(不确定stackoverflow格式是否会吃掉空格。)
  • 两台机器都使用docopts 0.6.1+fix。debian 机器使用 bash 4.2.37 和 python 2.7.3。ubuntu 机器在 4.2.45 和 2.7.5+ 上。
  • 我尝试了多种方式来描述这些选项。-l/--list 的不同顺序。= 选项及其变量之间的符号。尖括号中的变量名称。等等。它在 debian 中可靠地工作,而不是在 Ubuntu 中。

- 跟进 -

我在 debian 测试机上遇到了同样的问题。Docopts 正在寻找新的维护者,所以我放弃了。作为替代方案,我写了https://raw.github.com/sagotsky/.dotfiles/612fe9e5c4aa7e1fae268810b24f8f80960a6d66/scripts/argh.sh,它比 docopts 小,但可以满足我的需要。

0 投票
1 回答
2028 浏览

python - docopt 不允许可选参数

我在docopt有以下用法:

Where[<devices_file>]是一个可选参数。

但是,当我尝试这样使用它时,出现错误。

这工作正常:

这会引发错误:

错误:

谁能看到我做错了什么?

0 投票
1 回答
1174 浏览

python - Docopt:重复元素后的选项被插入为重复元素

我在我的简单 Python 程序中使用了 docopt :

如果我运行:

预期的行为是以 0.25 的价格购买介于 100 和 115 之间的随机数量的鸡蛋。至少在解释论点时,这没有问题。换句话说, docopt得到了预期的一切:

但是,有时我不想购买随机数量的鸡蛋,而是购买特定数量的鸡蛋。在这种情况下,该--quantity选项只接受一个参数:

但这失败了,因为docopt解释--price 0.25为的重复元素--quantity并失去了 的值<price>

重复元素后如何让其他选项起作用?

0 投票
2 回答
2024 浏览

python - 使用 docopt 定义参数值

我正在开发我的第一个 python“应用程序”,并在 Stackoverflow 上的参与者提出了一些建议。我决定放弃我所拥有的,从头开始。

它似乎很好地解析了参数以供使用等,但我不确定我是如何将值分配给 args 的?

我必须创建一个ifs巢吗?如果是这样,我该如何为 docopt 中的 args 执行此操作?

也许像这样?

代码