Python argparse:参数在帮助中但未在使用中

Python argparse: argument in help but not in usage

在 argparse 中,我希望可选参数出现在 optional arguments: 下的帮助列表中,但不出现在用法文本中。我可以在参数中使用 help=argparse.SUPPRESS 将其从使用中删除,但这具有将其从帮助文本中的参数描述中删除的副作用。

是否有可能——如果可以,如何——仅在用法中抑制参数。

此外,我将如何在用法中用统一的 [--args] 指示符替换所有可选参数。

如果您不指定用法消息,它将根据参数自动生成。如果你不喜欢自动生成的用法字符串,你可以在创建解析器时自己覆盖它:

parser = ArgumentParser(usage='my usage str')

您不能将自动生成的用法消息自定义为只抑制可选参数,这是一个要么使用它要么丢失它的事情。如果您想为自定义用法生成器重用代码,最好的办法是继承 HelpFormatter 并覆盖 _format_usage 方法。