首先:大写这些短语会违背常规,
argparse实际上并没有工具来帮助您轻松更改这些字符串。您在这里有三种不同的字符串类:帮助格式化程序的样板文本,节标题和每个特定选项的帮助文本。所有这些字符串都可以本地化;您
可以
通过
gettext()模块支持为所有这些字符串提供“大写”翻译。就是说,如果您有足够的决心,并且可以稍微阅读一下源代码,则可以深入并替换所有这些字符串。
该
version操作包括默认
help文本,但是您可以通过设置
help参数来提供自己的文本。这同样适用于
help行动;
如果将
add_help参数设置为
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和来访问这些属性
_optionals,这两个
title属性都有一个属性:
parser._positionals.title = 'Positional arguments'parser._optionals.title = 'Optional arguments'
请注意 ,通过访问以下划线开头的名称,您正在尝试使用未记录的模块私有API,并且您的代码可能会在以后的更新中中断。
最后,要更改
usage字符串,您必须将帮助格式化程序子类化。将子类作为
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.


