Python 的 argparse 自定义 help 命令分组

作者: , 共 933 字 , 共阅读 0

Python的命令行包argparse内置了-h, --help命令。但它没有分组,和其它的命令混在一起,并且显示在最前面。我更喜欢把它放在单独的「LOG 和帮助」分组:

import argparse

parser = argparse.ArgumentParser(
    usage="示例程序",
    add_help=False,
    formatter_class=lambda prog: argparse.RawTextHelpFormatter(prog, max_help_position=50))

parser.add_argument("--server", required=True, help="必备参数")

group = parser.add_argument_group("LOG和帮助")
group.add_argument("--log", default="info", help="设置LOG级别")
group.add_argument("-h", "--help", action="help", help="查看帮助信息")

options = parser.parse_args()

注意上面的-h, --help必须设置为argparse内置的action="help"。下面这种写法:

group.add_argument("-h", "--help", action="store_true", help="查看帮助信息")

options = parser.parse_args()
if options.help:
    parser.print_help()
    sys.exit(0)

这时候直接-h将提示没有指定--server,而不是正常地显示帮助信息。

Q. E. D.

类似文章:
相似度: 0.076
编程 » Python
Python 在搜索模块时,依次搜索sys.path里的位置,直到找到模块为止。下面命令可以查看当前的搜索路径:
编程 »
一般而言,在 Python 里:
编程 »
我们用boost的命令行库program_options解析命令行,在解释布尔命令行时使用下面代码:
编程 » Excel, VBA
效果图:
户外 » 登山
周末刚带小孩走了一次,小孩将近六岁,也能走下来。
IT »
zhiqiang.org之前用Google Apps提供邮箱服务,后来不知怎么就被关了。昨天弄了下,把它挪到了腾讯企业邮箱,用的免费的基准版服务。今天已经生效了。