optparse的模糊选项错误

时间:2018-01-31 10:26:26

标签: python optparse

请说明为什么下面的代码都给出了错误,尽管两者都表示相同的选项。

In [3]: parser = optparse.OptionParser()

In [4]: parser.add_option("--currencies", "--currency", "--ccy")
Out[4]: <Option at 0x7f113e6c4488: --currencies/--currency/--ccy>

In [5]: parser.parse_args(["--curr", "CHF"])
Usage: ipython [options]

ipython: error: ambiguous option: --curr (--currencies, --currency?)
An exception has occurred, use %tb to see the full traceback.

1 个答案:

答案 0 :(得分:1)

没有关于此问题的真实文档,但您可以查看the source code并了解会发生什么。

简而言之,optparse将检查给定的参数是否彼此不太接近。

如果两个参数(或更多)以相同的字符串开头(例如foofoobarfoofoo,它们都以foo开头),它将引发{{ 1}}。

在您的情况下,AmbiguousOptionError--currencies--currency开头,因此当您要求解析--curr --curr时,无法说出您是否要说{ {1}}或optparse