我正在研究一系列命令行工具,这些工具可连接到同一服务器并执行相关但不同的事情。我希望用户能够拥有一个配置文件,他们可以在其中放置通用参数,例如可以在所有工具之间共享的连接信息。理想情况下,我想要为我做以下事情:


如果在命令行中指定了服务器地址,请使用它并忽略任何其他值
如果未在命令行中指定服务器地址,但在命令行中指定的配置文件中,则使用此地址。忽略任何其他值。
如果未在命令行上指定服务器地址,也未在命令中指定配置文件,但是在用户主目录(例如.myapprc)的配置文件中提供了服务器地址,请使用此值。
如果在以上任何机制中未指定服务器地址,则退出并显示错误消息。


我所看到的最接近的是configparse模块,据我所知,该模块提供了一个选项解析器,该解析器还将查看配置文件,但似乎没有“必须在某处指定”的概念。需要。

有谁知道可以覆盖我上面用例的现有模块?如果没有,对optparse,configparse或我尚未查看的其他模块的简单扩展也将不胜感激。

最佳答案

编写此第三方模块configparse是为了从标准Python库扩展optparse。正如我提到的optparse文档所述,“ optparse不会阻止您实施必需的选项,但也不能给您带来太多帮助”(尽管后面附带了几个URL,向您展示了实现方法) 。最简单的方法是使用default value功能:指定一个实际上不是合法值的默认值(对于服务器地址之类的东西,这很容易)–然后,一旦处理了选项,请验证指定值是否合法(即无论如何是个好主意!-),否则请提出适当的例外。

10-06 05:44