帮助输出中的Argparse子命令顺序

时间:2013-03-19 12:48:14

标签: python argparse

使用Python的argparse模块,有没有办法订购通过在帮助输出中使用子分析器创建的子命令?

1 个答案:

答案 0 :(得分: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()