首先:大寫這些短語是爲了迎合約定,而並非真正幫助您輕鬆更改這些字符串。這裏有三種不同類型的字符串:幫助格式化程序中的樣板文本,節標題和每個特定選項的幫助文本。所有這些字符串都是可以本地化的;你可能只是通過gettext()
module support提供所有這些字符串的'大寫'翻譯。也就是說,如果你有足夠的決心,你可以接觸並替換所有這些字符串,並且read the source code a little。
version
操作包括默認help
文本,但您可以通過設置help
參數來提供自己的文本。這同樣適用於help
操作;如果設置了到add_help
argumentFalse
可以添加手動採取行動:
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
argument:
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.
您是否嘗試過設置['help'](https://docs.python.org/3/library/argparse.html#幫幫我)? – jonrsharpe
哦,我明白了 - 那麼你可以將'add_help'設置爲'False'並手工完成。但小寫是這些事情的慣例。 – jonrsharpe