python argparse 帮助消息,禁用元变量的短选项? [英] python argparse help message, disable metavar for short options?

查看:23
本文介绍了python argparse 帮助消息,禁用元变量的短选项?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想构建一个 argparser 帮助消息,如下所示:

I want to construct a argparser help message that looks like:

-i, --input=INPUT    help for input
-o, --output=output  help for output

我当前的代码:

arg_parser = argparse.ArgumentParser
arg_parser.add_argument('-i', '--input', dest='input', metavar='=INPUT', help='help for input')
arg_parser.add_argument('-o', '--output', dest='output', metavar='=OUTPUT', help='help for output')
arg_parser.print_help()

正在给我

-i =INPUT, --input =INPUT    help for input
-o =INPUT, --output =output  help for output

我只想知道如何摆脱短期和长期期权之间的事情.

I just want to know how to get rid of the things in between short and long options.

推荐答案

不要在 argparse 的 print_help() 中两次显示长选项

问基本相同的事情.如果您不适合编写自己的 HelpFormatter 子类(它可能需要更改一种方法),则需要使用现有的格式化工具 - 帮助、元变量和描述.

asks essentially the same thing. If you are not up to writing your own HelpFormatter subclass (it probably needs to change one method), you need to play with the existing formatting tools - help, metavar, and description.

这里也没有重复 ALLCAPS 的 argparse 帮助

如何避免python的argparse模块中的大写占位符?

对于那个 88275023 问题,我解决了(但没有发布)这个 Formatter 类.变化接近尾声

For that 88275023 question I worked out (but didn't post) this Formatter class. The change is near the end

class CustomFormatter(argparse.HelpFormatter):
    def _format_action_invocation(self, action):
        if not action.option_strings:
            metavar, = self._metavar_formatter(action, action.dest)(1)
            return metavar
        else:
            parts = []
            # if the Optional doesn't take a value, format is:
            #    -s, --long
            if action.nargs == 0:
                parts.extend(action.option_strings)

            # if the Optional takes a value, format is:
            #    -s ARGS, --long ARGS
            # change to 
            #    -s, --long ARGS
            else:
                default = action.dest.upper()
                args_string = self._format_args(action, default)
                for option_string in action.option_strings:
                    #parts.append('%s %s' % (option_string, args_string))
                    parts.append('%s' % option_string)
                parts[-1] += ' %s'%args_string
            return ', '.join(parts)

这篇关于python argparse 帮助消息,禁用元变量的短选项?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆