【发布时间】:2013-03-08 03:42:58
【问题描述】:
使用 Python 的 argparse 模块,有没有办法在帮助输出中对通过使用子解析器创建的子命令进行排序?
【问题讨论】:
-
您链接到的问题是关于参数的顺序。我需要对子命令进行排序。
使用 Python 的 argparse 模块,有没有办法在帮助输出中对通过使用子解析器创建的子命令进行排序?
【问题讨论】:
我实际上找到了一种使用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()
【讨论】: