问题标签 [optionparser]

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 回答
334 浏览

python - 选项解析器与参数不匹配

我有一个简单的 python (v2.7) 脚本 ( test.py )

用户必须提供文件模式或文件名

如果缺少选项,则在命令行中运行脚本返回错误:

如果选项文件缺少一些字母(--fil 而不是--files):

我想我应该有如下错误

当我使用--fil而不是正确的参数--files时,为什么我不会从OptionParser收到错误?

不仅我没有收到错误,而且变量文件存储了值:a_pattern_for_files(已打印)。

我期望参数文件具有值:无(默认),除非在命令行中--files存在

0 投票
2 回答
727 浏览

ruby - Ruby OptionParser 未正确解析 -- 命令正确

这是 OptionParser 的精简版

这是格式选项的试用版

为什么不起作用--format s

0 投票
2 回答
377 浏览

python - 如何执行 python 类模块以及 pytest 和选项解析器?

custom_calculation.py

test_custom_calculation.py

这就是我执行简单模块的方式。cd main/src python -m pytest py.test -v

学习python面向对象。如果我的代码有误,请帮助我(甚至可以在导入模块中)。这里的实际问题是,我可以执行 python(包含类)模块以及 pytest 和选项解析器吗?

没有pytest,我可以运行它python test_custom_calculation.py --a 10 --b 10 --c add

我如何用 pytest 运行它?

编辑:

0 投票
1 回答
168 浏览

crystal-lang - Crystal lang 在不应该时从 OptionParser 获取选项参数

我开始使用Crystal lang,我想使用OptionParser来显示帮助文本,但是-h将由Crystal而不是OptionParser解释

我正在使用来自https://crystal-lang.org/api/0.18.7/OptionParser.html的示例

并使用以下命令调用应用程序myAppl

这显示了水晶帮助。现在,如果我编译应用程序,那么它会显示我编写的帮助文本OptionParser

我做错了什么?

0 投票
2 回答
1890 浏览

ruby - 布尔选项的Ruby OptionParser短代码?

我正在使用 Ruby 的 OptionParser ( require 'optparse') 处理可以为真或假的“详细”选项。它在这样的代码中:

我支持在环境变量中指定选项(我将其内容添加到 ARGV),因此可以在该环境变量中设置详细模式,并在命令行上使用--no-verbose. 但是,我找不到用简短选项覆盖它的方法。我试过这些但没有成功:

我在https://github.com/ruby/ruby/blob/trunk/lib/optparse.rb找到了源代码,但无法从中找出答案。

我怎样才能做到这一点?

0 投票
1 回答
123 浏览

python - 是否可以发送一个“OptionParser”对象作为输入参数来运行导入的 python 模块的 main?

有两个 python 脚本,“script1.py”和“script2.py”。

'script1.py' 使用 OptionParser 来解析命令行参数。

'script1.py' 的内容看起来像这样

在命令行上运行它。它运行:

'script2.py' 也使用以相同方式实现的 OptionParser,但具有一组不同的选项。

“script2.py”也将“script1.py”作为模块导入。

我想从 script2.py 运行 script1.py 的主要部分。做这个的最好方式是什么?

我让它工作的一种方法是更改​​ script1.py 的 main 以将 OptionParser 作为参数。

并确保两个脚本的 OptionParser 具有完全相同的选项。如果我这样做,那么我可以将 OptionParser 对象从 script2 传递到 script1,如下所示:

有没有办法在不使两个脚本中的 OptionParser 相同的情况下实现相同的结果。

理想情况下,我希望它按以下方式工作:

这样我可以从命令行以及另一个脚本运行 script1。

编辑:我也知道我可以使用 subprocess 和 os.system() 来执行 python 脚本。我想知道是否有更简洁的方法来设计两个脚本之间的交互。

编辑 2:根据 Mig 的建议,我将选项解析器移出 main。

scrip1.py 现在看起来如下

现在从 script2.py 导入 script1.py 作为模块后,我可以调用 main of script1 script1.main(option1="Option1", option2="Option2")

0 投票
1 回答
145 浏览

python - 有没有办法为使用 parser.add_option 创建的选项输入输入,而不为同一选项输入任何输入?

现在,当我在命令提示符下键入“ python openweather.py --api= key --city=London --temp=fahrenheit ”时,我会得到所需的华氏温度输出,即使输入了摄氏度(“ --temp=摄氏度“)我得到了所需的摄氏温度输出。

但我进一步要求的是,如果我输入“ python openweather.py --api= key --city=London --temp ”,我需要默认输出摄氏度。问题是我无法为相同的“--temp”执行此操作,因为我不断收到错误消息:“openweather.py: error: --temp option requires 1 argument”对于我尝试的任何事情。

以下是我正在使用的代码:

所以我需要相同的“--temp”才能接受输入并且没有输入。任何帮助表示赞赏。

0 投票
1 回答
42 浏览

python - python3.7 optionparser 输入选项带星号(*)变成文件夹中的文件

环境:

python3.7
OptionParser with a option [ add_option('-t', '--target', action='append', dest='targets') ]
操作系统:CentOS7.6

问题:

所以我使用这个选项来输入一个目标列表,并使用这个命令行:
parser -t logs* -t test
有一个文件“logs.tar.gz”在我执行这个命令行的地方,当我打印目标的值时,这就是我得到的:
['logs.tar.gz', 'test']
所以我认为这是系统级别的“问题”,我想知道的是:
有没有什么方法可以logs*在没有pythonlogs*输入的情况下实现?logs\*

0 投票
1 回答
22 浏览

ruby - 我在 OptionParser 中有三个标志,但它只能访问其中两个

我正在使用 Ruby 构建 CLI gem,并且正在使用 OptionParser 添加带有参数的标志。每当使用参数调用一个标志时,就会调用一个函数。我有三个标志。我的问题是,当我运行-h命令查看可用的选项(标志)时,它只显示其中三个(跳过中间一个),即使我尝试使用该标志,(帮助中未列出)它运行最后一个标志的代码。这是我的标志代码:

这是-av_max不起作用的标志。当我运行get 时执行-av_maxweek_average_min(ARGV.first)

当我在-h这里运行命令时,它显示的是:

我的问题是,OptionParser 是否可以使用三个标志?如果是这样,我怎样才能使这个中间单位工作?

0 投票
1 回答
229 浏览

c - C: getopt_long() 总是返回无效选项

我正在尝试使用getopt_long向已经工作的 C 程序添加一个新选项。我要添加的选项是-S但每次我尝试运行我得到的代码时:

我只是在long_options向量中添加了一个关于我想以这种方式添加的选项的新元素:

下面是我的代码:

我也尝试了不同的字符,但我总是得到无效的选项。问题出在哪里?