我正在编写一个基于命令行插件的程序,其中的插件将在我提供的任何内容之上提供额外的功能。
例如,假设我编写了一个简单的脚本来解析图像并存储它们,而这就是我所做的一切。然后其他人可以编写一组脚本来操作图像,将他的脚本放在插件中。
插件将被加载,用户可以通过在命令行中指定其名称来访问插件。
脚本希望为用户提供额外选项的情况并不少见。 所以假设在某些年内,已经编写了 20 个不同的插件。
现在,所有的作者都希望允许用户提供选项,所以主引擎应该接受用户的选项并将它们传递给插件,以便它可以随心所欲地处理它们。
为了保持统一,他们可能同意某些选项应该执行类似的操作。像“-o name”应该将输出名称设置为“name”。然后他们会开始实现他们自己的选项和东西,而主引擎不知道这些(当然,它不应该知道插件做了什么)
我正在使用已弃用的 getopt 模块,每当我指定未定义的选项时它都会抛出异常。我听说过 optparse 和 argparse,但我不确定它们是否允许用户指定他想要的任何选项而代码不会抛出异常。
我怎样才能指定任何命令行选项?
最佳答案
argparse
允许您使用 parse_known_args
部分解析参数列表方法,返回正确解析的内容,以及剩余参数的列表。
关于Python 和任意命令行选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7108443/