【发布时间】:2013-02-01 20:25:08
【问题描述】:
我做了一个 Python 脚本,它做了很多动作,所以它有很多选项,所以我把它分成了子解析器,这些子解析器也使用父解析器进行常见的选项分组。
我想要一个帮助选项来显示所有命令及其选项的帮助,是否可以不覆盖 format_help 方法?
我看到了similar question,但分组对我来说并不重要,我只想要那里的选项。
例如:
general_group = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter,add_help=False)
general_group.add_argument('--threads', action='store_true', default=False)
second_group = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter,add_help=False)
second_group.add_argument('--sleep', action='store', default=60, type=int)
parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter)
subparsers=parser.add_subparsers(dest='action')
subparsers.add_parser('Restart',parents=[general_group,second_group])
subparsers.add_parser('Start',parents=[general_group])
args = parser.parse_args()
在这种情况下,如果有人运行 ./script.py -h,我希望他们会在帮助中看到线程选项。
【问题讨论】:
-
您将
parents参数传递给子解析器是否有原因?使用general_group作为“父级”(意思是subparsers = general_group.add_subparsers())并且不 传递parents=[...]实际上显示 在执行./script.py -h时--threads选项。 -
是的,我有 3 个这样的组...
-
那么你发布的不是一个最小的工作示例。发布一些代码,准确显示您正在尝试做的事情。
-
使示例与我的实际代码更相似,我无法在此处发布确切的代码,因为它是内部的。