我正在编写一个基于插件的命令行程序,插件将提供额外的功能。例如,我编写了一个简单的脚本来解析图像并存储它们,然后其他人可以编写一组脚本来操作这些图像,并将这些脚本放在插件中。
用户可以通过在命令行中指定插件名称来加载插件。
脚本通常希望为用户提供附加选项。假设有20个不同的插件已经编写好了,所有作者都希望允许用户提供选项,因此主引擎应该将用户的选项传递给插件,使其能够按照自己的方式处理它们。
为了保持统一,他们可能会同意某些选项执行类似的操作。例如,“-o name”应将输出名称设置为“name”。然后他们会开始实现自己的选项和功能,而主引擎不知道这些(当然,它不应该知道插件的具体操作)。
我正在使用已弃用的getopt模块,但是如果我指定未定义的选项,它会抛出异常。我听说过optparse和argparse,但我不确定是否可以让用户指定任何选项而不会导致代码抛出异常。
如何才能让我指定任何命令行选项?
用户可以通过在命令行中指定插件名称来加载插件。
脚本通常希望为用户提供附加选项。假设有20个不同的插件已经编写好了,所有作者都希望允许用户提供选项,因此主引擎应该将用户的选项传递给插件,使其能够按照自己的方式处理它们。
为了保持统一,他们可能会同意某些选项执行类似的操作。例如,“-o name”应将输出名称设置为“name”。然后他们会开始实现自己的选项和功能,而主引擎不知道这些(当然,它不应该知道插件的具体操作)。
我正在使用已弃用的getopt模块,但是如果我指定未定义的选项,它会抛出异常。我听说过optparse和argparse,但我不确定是否可以让用户指定任何选项而不会导致代码抛出异常。
如何才能让我指定任何命令行选项?