问题标签 [optparse]

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 投票
2 回答
1824 浏览

python - 使用 optparse 或 argparse 检测是否多次指定任何命令行选项

Python optparse 通常允许用户多次指定一个选项,并默默地忽略除最后一个选项之外的所有选项。例如,如果 option 的动作--foostore并且 option 的动作--flagstore_const, store_trueor store_false,则以下命令将是等效的:

(更新:argparse 默认做同样的事情。)

现在,我有很多选项,并且多次指定它们中的任何一个都没有意义。如果用户多次指定相同的选项,我想警告他们可能出现的错误。

检测多次指定的选项的最优雅方法是什么?请注意,相同的选项可以有短格式、长格式和缩写长格式(因此、 和-f都是--foobar相同的选项)。如果能够检测到同时指定具有相同目的地的多个选项的情况会更好,这样如果用户同时指定了两个选项并且两个选项都将值存储到相同的目的地并且有效地存储了一个值,则可以发出警告互相覆盖。--foob--foo--quiet--verbose

更新:为了更加用户友好,警告应该引用命令行上使用的确切选项名称。使用append动作代替store是可能的,但是当我们检测到冲突时,我们不能说是哪个选项导致了它(是它-q还是--verbose--quiet --quiet)。

不幸的是,我坚持使用 optparse,无法使用 argparse,因为我必须支持 Python 2.6。

PS 如果您知道仅适用于 argparse 的解决方案,请也发布它。虽然我尽量减少外部依赖项的数量,但在 Python 2.6 下使用 argparse 仍然是一种选择。

0 投票
2 回答
391 浏览

python - 如何同时支持 argparse 和 optparse?

我有一个小型应用程序,它可以在使用 Python 2.7+ 的最新 Linux 发行版上运行,但也可以在尚未切换到 Python 2.7 的 CentOS 和 Scientific Linux 机器上运行。optparse已被 Python 2.7 弃用,坦率地说我不想支持optparse,这就是我开发应用程序的原因argparse。但是,argparse在这些较旧的发行版上不存在。此外,系统管理员对安装argparse.

现在,我应该这样做吗?坚持optparse?围绕这两个库编写另一个包装器?说服系统管理员和用户(在大多数情况下只能启动应用程序)安装argparse反向移植?

0 投票
3 回答
78432 浏览

python - Python argparse 忽略无法识别的参数

Optparse,旧版本只是忽略所有无法识别的参数并继续。在大多数情况下,这并不理想,并且在 argparse 中进行了更改。但是在某些情况下,您希望忽略任何无法识别的参数并解析您指定的参数。

例如:

反正有覆盖这个吗?

0 投票
1 回答
1026 浏览

ruby - 如何配置 optparse 以接受两个参数选项作为命令?

我正在使用 Ruby 的optparse库来解析我的命令行应用程序的选项,但我不知道如何也接受命令。

它会是这样的:

init在这种情况下将是命令。它并不总是必需的,因为如果用户没有提供任何命令,则应该运行一个默认命令。

这是我现在拥有的代码:

0 投票
2 回答
3336 浏览

python - 给定选项时为 optionparser 设置默认选项

我有一个解析可选 --list-something 选项的 python 选项解析器。我还希望 --list-something 选项有一个可选参数(一个选项)

在这里使用参数default="simple"不起作用,否则 simple 将始终是默认值,不仅是在给出 --list-something 时。

上面的代码产生了这个:

但我希望这发生:

我想要在 python 2.4 到 3.0 之前开箱即用的东西(不包括 3.0)

由于 argparse 仅在 python 2.7 中引入,这不是我可以使用的。

0 投票
2 回答
202 浏览

python - 如何展平 optparse 结构?

我正在尝试为 Django 构建管理命令,但遇到了问题。似乎该option_list变量需要是一个扁平的选项列表。

这是执行的代码——为简洁起见而编辑:

我需要获取所有选项parser变量,然后将其展平,即删除OptionGroup,同时保留选项并将它们放入一个新变量中。

Django 需要一个类来指定它的选项,这样它就可以迭代它。

我对如何做到这一点非常迷茫。

0 投票
2 回答
12208 浏览

python - 带引号的 Python argparse 参数

有什么办法可以告诉 argparse 不要吃引号?

例如,当我给出带引号的参数时,argparse 仅将引号内的内容作为参数。我也想捕获引号(不必在命令行上转义它们。)

生产

我想

0 投票
2 回答
391 浏览

ruby - OptParse 中带有 2 个参数的选项

我正在尝试做一些看起来像这样的事情:

问题是它返回arg1, 但arg2返回nil. 如何使这项工作?

0 投票
1 回答
202 浏览

python - 使 optparse 将某些选项视为位置参数

我有一个接受表单参数的程序filename:field[slice],它工作正常。但我也希望支持文件名-表示标准输入的通用表示法。可悲的是,-:field[slice]注册为 optparse 的选项(自然),因此不会显示为位置参数。所以我想知道是否有办法解决这个问题,例如告诉 optparse 以开头的选项-:毕竟应该被视为位置参数。解决方案应保留参数的顺序,因此foo:bar -:cow baz:dog不应成为foo:bar baz:dog -:cow.

0 投票
5 回答
8973 浏览

r - 在 R 中通过命令行传递多个参数

我正在尝试通过命令行将多个文件路径参数传递给 Rscript,然后可以使用参数解析器对其进行处理。最终我想要这样的东西

通过命令行传递并在解析时将结果作为 R 中的数组

我已经尝试了几个解析器,包括 optparse 和 getopt 但它们似乎都不支持这个功能。我知道 argparse 可以,但它目前不适用于 R 版本 2.15.2

有任何想法吗?

谢谢