optparse 代码迁移到 argparse

argparse 模块提供了 optparse 模块不原生提供的几个高级功能,包括

  • 处理位置参数。

  • 支持子命令。

  • 允许使用替代选项前缀,例如 +/

  • 处理零个或多个以及一个或多个样式的参数。

  • 生成信息更丰富的用法消息。

  • 为自定义 typeaction 提供更简单的接口。

最初,argparse 模块试图保持与 optparse 的兼容性。然而,支持声明式命令行选项处理(同时将位置参数处理留给应用程序代码)与在声明式接口中同时支持命名选项和位置参数之间的根本设计差异意味着其 API 随着时间的推移与 optparse 的 API 产生了分歧。

选择一个参数解析库 中所述,目前正在使用 optparse 并且对其工作方式满意的应用程序可以继续使用 optparse

考虑迁移的应用程序开发人员在决定是否需要迁移之前,还应查阅该部分描述的内在行为差异列表。

对于选择从 optparse 迁移到 argparse 的应用程序,以下建议应该有所帮助