optparse 代码迁移到 argparse

argparse 模块提供了几个 optparse 模块本身不具备的更高级特性,包括:

  • 处理位置参数。

  • 支持子命令。

  • 允许使用 +/ 等可选选项前缀。

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

  • 生成更详细的用法消息。

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

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

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

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

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