python argparse如何在[-h]命令后继续程序?

时间:2018-04-13 07:53:13

标签: python argparse

我正在使用argparse编写一个解释器。并面临一个问题。

while True:
    cmd = input('>>>')
    parser = argparse.ArgumentParser()
    parser.add_argument('-f', help='foo')
    parser.parse_args(cmd.split())

当我输入[-h]命令时,它退出程序。

>>>-h
usage: test.py [-h] [-f F]

optional arguments:
-h, --help  show this help message and exit
-f F        foo

现在,我只想要“显示此帮助信息”,而不是“退出”。那我该怎么办?

1 个答案:

答案 0 :(得分:3)

这可以通过删除预定义的帮助命令并添加自己的命令来完成:

import argparse

while True:
    cmd = input('>>>')
    parser = argparse.ArgumentParser(add_help=False)
    parser.add_argument('-h', '--help', action='store_true',
            help = 'show this help message')
    parser.add_argument('-f', help='foo')
    args = parser.parse_args(cmd.split())
    if args.help:
        parser.print_help()