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

Mer*_*per 1 python argparse

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

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

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

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

optional arguments:
-h, --help  show this help message and exit
-f F        foo
Run Code Online (Sandbox Code Playgroud)

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

Kat*_*eba 6

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

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()
Run Code Online (Sandbox Code Playgroud)