2013-03-19 38 views
1

使用Python的​​模塊,是否有一種方法可以通過在幫助輸出中使用子分析器來創建子命令?Argparse子命令在幫助輸出中的順序

+0

看起來像重複:http://stackoverflow.com/questions/12268602/sort-argparse-help-alphabetically – 2013-03-19 12:54:34

+0

您鏈接到的問題是有關的參數的順序。我需要對子命令進行排序。 – 2013-03-19 13:20:27

回答

2

我實際上找到了一種使用argparse.HelpFormatter的方法。

class CustomHelpFormatter(argparse.HelpFormatter): 
    def _iter_indented_subactions(self, action): 
     try: 
      get_subactions = action._get_subactions 
     except AttributeError: 
      pass 
     else: 
      self._indent() 
      if isinstance(action, argparse._SubParsersAction): 
       for subaction in sorted(get_subactions(), key=lambda x: x.dest): 
        yield subaction 
      else: 
       for subaction in get_subactions(): 
        yield subaction 
      self._dedent()