如何显示自定义消息而不是Argparse生成的默认帮助消息?

时间:2019-08-06 05:57:11

标签: python python-3.x argparse

请考虑以下示例代码

var click = false;

TouchGestures.onTap(facemesh0).subscribe(function(){
    if(click) {
      ObjectA.hidden = true;
      ObjectB.hidden = false;
      click = false;
    } else{
      ObjectB.hidden = true;
      ObjectA.hidden = false;
      click = true;
    }
});

使用import argparse parser = argparse.ArgumentParser() parser.add_argument('action', help='Action to take') parser.add_argument('-b','--bar', help='Description for bar argument') parser.parse_args() 参数调用它的输出可能是这样的:

--help

我不希望上述Argparse生成的默认帮助文本。我想要一条完全由我撰写的消息

例如,使用positional arguments: action Action to take optional arguments: -h, --help show this help message and exit -b --bar Description for bar argument 参数调用文件应显示以下帮助消息:

--help

那我如何向Argparse提供我的自定义消息?

1 个答案:

答案 0 :(得分:0)

您需要覆盖print_help()方法。因此,我创建了一个名为MyArguementParser的类,该类将覆盖ArgumentParser,如下所示:

import argparse
import sys as _sys

class MyArgumentParser(argparse.ArgumentParser):

    def print_help(self, file=None):
        if file is None:
            file = _sys.stdout
        message = "Please go to http://some_website.com/help to understand more about our software"
        file.write(message+"\n")

现在,您将像这样呼叫ArgumentParser,而不是MyArgumentParser

parser = MyArgumentParser() #THIS IS THE ONLY CHANGE YOU NEED TO MAKE
# parser = argparse.ArgumentParser()
parser.add_argument('action', help='Action to take')
parser.add_argument('-b','--bar', help='Description for bar argument')
parser.parse_args()

现在,当您使用-h--help标志运行脚本时!

当用户滥用任何提供的参数时,您还可以以相同的方式覆盖print_usage(),以显示相同的消息。