python - 在 Python 中处理(可能的)可选参数

标签 python command-line optparse configparser

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

  1. 如果在命令行中指定了服务器地址,请使用此地址并忽略任何其他值
  2. 如果服务器地址未在命令行中指定,但位于在命令行中指定的配置文件中,则使用此地址。忽略任何其他值。
  3. 如果服务器地址未在命令行中指定,也未在命令中指定配置文件,但在用户主目录的配置文件中可用(例如 .myapprc),使用这个值。
  4. 如果在上述任何机制中未指定服务器地址,则会退出并显示错误消息。

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

有人知道现有的模块可以满足我上面的用例吗?如果没有,对 optparse、configparse 或我尚未审阅的其他模块的简单扩展也将不胜感激。

最佳答案

此方模块configparse写入扩展 optparse来自标准 Python 库。正如我指出的 optparse 文档提到的那样,“optparse 不会阻止您实现所需的选项,但也不会为您提供太多帮助”(尽管它后面有几个 URL,向您展示了执行此操作的方法) 。最简单的是使用default value功能:指定一个实际上不是合法值的默认值(对于服务器地址之类的东西,这非常简单)——然后,一旦处理了选项,验证指定的值是否合法(无论如何,这是一个好主意!-)否则引发适当的异常。

关于python - 在 Python 中处理(可能的)可选参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1811540/

相关文章:

windows-7 - 如何使用命令行启用 "Internet Connection Sharing"?

c# - 如何加快在 ASP.NET 中调用命令行工具的循环?

python - 开源科学项目——使用 Python 2.6 还是 2.7?

python - 在不删除python中的字符的情况下拆分具有不同条件的字符串

python - 在Python中查找列表和字典之间的共同元素

python - 如何使这个 Python 类定义代码不那么难看

php - 如何在 WAMPServer 中从 Windows 命令行运行 PHP

r - 我可以使用 optparse 指定强制参数吗

python - 在 python 中将命令行参数作为元组获取

python - 如何在 Pandas 数据框的列中用零替换 NaN 值?