【问题标题】:How to suppress only the long form of an argument in the argparse help output?如何在 argparse 帮助输出中仅抑制长形式的参数?
【发布时间】:2021-11-25 22:41:33
【问题描述】:

当我使用 argparse 时,像这样的例子:

from argparse import ArgumentParser
parser = ArgumentParser()
parser.add_argument("-i", "--input", action="store")

那么帮助菜单是这样的:

usage: test.py [-h] [-i INPUT]

options:
  -h, --help            show this help message and exit
  -i INPUT, --input INPUT
                        input file

如果我不想在此处使用--input INPUT,我该怎么办?像这样:

usage: test.py [-h] [-i INPUT]

options:
  -h, --help            show this help message and exit
  -i INPUT              input file

【问题讨论】:

  • 如果您根本不想提供,请将 "--input" 放入 add_argument()
  • 但我想要那个-i INPUT @BradSolomon

标签: python argparse


【解决方案1】:

add_argument 中删除--input 以删除该选项并添加dest='input' 以将INPUT 保留在帮助文本中

parser.add_argument("-i", dest='input', action="store")

【讨论】:

  • 他希望 --input 作为一个可用的选项,他只是想从帮助文本中删除它。
  • @Barmar OP 没有这样说。 (它说要-i INPUT,但没有提到--input。)我同意你的答案是最完整的,但没有必要质疑其他符合要求的答案。
  • 他问“如果我不希望这里的 --input INPUT 怎么办?”我将“这里”解释为指的是帮助输出。
【解决方案2】:

您可以有两个具有相同目标属性的选项,并使用argparse.SUPPRESS 隐藏其中一个的帮助文本。

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("-i", dest="input", action="store")
parser.add_argument("--input", dest="input", action="store", help=argparse.SUPPRESS)

【讨论】:

    【解决方案3】:

    设置用于存储值的dest名称:

    from argparse import ArgumentParser                                             
    parser = ArgumentParser()                                                       
    parser.add_argument("-i", dest="input", help="input file", action="store")      
    parser.parse_args()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-24
      • 2021-08-13
      • 1970-01-01
      • 2013-03-08
      • 1970-01-01
      • 2018-03-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多