optparse 程式碼遷移到 argparse

argparse 模組提供了一些高階功能,這些功能在 optparse 模組中並未原生提供,包括:

  • 處理位置引數。

  • 支援子命令。

  • 允許替代選項前綴,如 +/

  • 處理零或多個 (zero-or-more) 和一個或多個 (and one-or-more) 樣式的引數。

  • 產生更多資訊的使用訊息。

  • 為自訂 typeaction 提供了一個更簡單的介面。

最初 argparse 模組試圖保持與 optparse 的相容性,但在基礎設計上的存在差異 -- 支援宣告式 (declarative) 命令列選項處理 (同時將位置引數處理留給應用程式的程式碼) 和在宣告式介面中支援命名選項 (named options) 和位置引數 -- 代表 API 隨著時間的推移已經與 optparse API 分歧。

選擇一個命令列參數剖析函式庫 中所述,目前使用 optparse 並對其運作方式滿意的應用程式可以繼續使用 optparse

在決定是否遷移之前,應用程式開發人員應該先檢閱該段落中描述的內在行為差異清單,來決定是否值得遷移。

對於選擇從 optparse 遷移到 argparse 的應用程式,以下建議應會有所幫助: