首先:将这些短语大写与惯例背道而驰,并且argparse
并没有真正的工具来帮助您轻松更改这些字符串。这里有三种不同类别的字符串:来自帮助格式化程序的样板文本、章节标题以及每个特定选项的帮助文本。所有这些字符串都是可本地化的;你could只需通过以下方式为所有这些字符串提供“大写”翻译gettext()模块支持 https://docs.python.org/3/library/gettext.html。也就是说,如果你有足够的决心,你可以伸手替换所有这些字符串稍微阅读一下源代码 https://hg.python.org/cpython/file/3.5/Lib/argparse.py.
The version
操作包括默认值help
文本,但您可以通过设置来提供自己的文本help
争论。这同样适用于help
行动;如果你设置add_help争论 https://docs.python.org/3/library/argparse.html#add-help to False
您可以手动添加该操作:
parser = argparse.ArgumentParser(add_help=False)
parser.add_argument('-v', '--version', action='version',
version='%(prog)s 1.0', help="Show program's version number and exit.")
parser.add_argument('-h', '--help', action='help', default=argparse.SUPPRESS,
help='Show this help message and exit.')
接下来,optional arguments
消息是一个组标题;每个解析器都有两个默认组,一组用于位置参数,另一组用于可选。您可以通过属性来达到这些_positionals
and _optionals
,两者都有一个title
属性:
parser._positionals.title = 'Positional arguments'
parser._optionals.title = 'Optional arguments'
被警告,通过访问以下划线开头的名称,您正在冒险进入模块的未记录的私有 API,并且您的代码可能会在将来的更新中中断。
最后,要改变usage
字符串,您必须对帮助格式化程序进行子类化;将子类作为formatter_class争论 https://docs.python.org/3/library/argparse.html#formatter-class:
class CapitalisedHelpFormatter(argparse.HelpFormatter):
def add_usage(self, usage, actions, groups, prefix=None):
if prefix is None:
prefix = 'Usage: '
return super(CapitalisedHelpFormatter, self).add_usage(
usage, actions, groups, prefix)
parser = argparse.ArgumentParser(formatter_class=CapitalisedHelpFormatter)
演示,将这些放在一起:
>>> import argparse
>>> class CapitalisedHelpFormatter(argparse.HelpFormatter):
... def add_usage(self, usage, actions, groups, prefix=None):
... if prefix is None:
... prefix = 'Usage: '
... return super(CapitalisedHelpFormatter, self).add_usage(
... usage, actions, groups, prefix)
...
>>> parser = argparse.ArgumentParser(add_help=False, formatter_class=CapitalisedHelpFormatter)
>>> parser._positionals.title = 'Positional arguments'
>>> parser._optionals.title = 'Optional arguments'
>>> parser.add_argument('-v', '--version', action='version',
... version='%(prog)s 1.0', help="Show program's version number and exit.")
_VersionAction(option_strings=['-v', '--version'], dest='version', nargs=0, const=None, default='==SUPPRESS==', type=None, choices=None, help="Show program's version number and exit.", metavar=None)
>>> parser.add_argument('-h', '--help', action='help', default=argparse.SUPPRESS,
... help='Show this help message and exit.')
_HelpAction(option_strings=['-h', '--help'], dest='help', nargs=0, const=None, default='==SUPPRESS==', type=None, choices=None, help='Show this help message and exit.', metavar=None)
>>> print(parser.format_help())
Usage: [-v] [-h]
Optional arguments:
-v, --version Show program's version number and exit.
-h, --help Show this help message and exit.