You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在argparse帮助输出中仅隐藏参数的长选项而保留短选项显示

实现方法

你可以通过自定义argparse的帮助格式化类实现需求,代码修改如下:

from argparse import ArgumentParser, HelpFormatter

# 自定义帮助格式化器,仅保留短选项在帮助说明中的显示
class CustomHelpFormatter(HelpFormatter):
    def _format_action_invocation(self, action):
        if not action.option_strings:
            # 处理位置参数逻辑
            metavar, = self._metavar_formatter(action, action.dest)(1)
            return metavar
        # 只取第一个选项字符串即短选项
        parts = [action.option_strings[0]]
        # 拼接参数占位符
        if action.nargs != 0:
            args_str = self._format_args(action, action.dest.upper())
            parts.append(args_str)
        return ' '.join(parts)

# 初始化解析器时指定自定义格式化类
parser = ArgumentParser(formatter_class=CustomHelpFormatter)
parser.add_argument("-i", "--input", action="store", help="input file")

# 测试打印帮助
parser.print_help()

运行后输出的帮助内容和你需要的效果完全一致。

如果仅需要隐藏个别参数的长选项,不需要全局生效,也可以用参数拆分+手动指定usage的方式实现:

from argparse import ArgumentParser, SUPPRESS

# 手动指定usage,避免长选项出现在用法说明中
parser = ArgumentParser(usage="%(prog)s [-h] [-i INPUT]")
# 定义短选项,正常显示帮助信息
parser.add_argument("-i", action="store", dest="input", help="input file", metavar="INPUT")
# 定义长选项,设置help为SUPPRESS隐藏帮助显示,和短选项绑定同一个存储字段
parser.add_argument("--input", action="store", dest="input", help=SUPPRESS)

# 测试打印帮助
parser.print_help()
# 测试长选项是否正常生效
args = parser.parse_args(["--input", "test.txt"])
print(args.input) # 输出test.txt,说明长选项可正常使用

内容的提问来源于stack exchange,提问作者PaliProx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 04:54:05