【问题标题】:Creating hidden arguments with Python argparse使用 Python argparse 创建隐藏参数
【发布时间】:2012-06-22 07:06:52
【问题描述】:

是否可以将参数添加到 python argparse.ArgumentParser 而不显示在用法或帮助中 (script.py --help)?

【问题讨论】:

    标签: python argparse


    【解决方案1】:

    我通过添加一个选项来启用隐藏的选项来做到这一点,然后通过查看sysv.args 来获取它。

    如果您这样做,如果您假设选项是 -s 以启用隐藏选项,则必须将您从 sys.argv 中选择的特殊 arg 直接包含在解析列表中。

    parser.add_argument('-a', '-axis',
                        dest="axis", action="store_true", default=False,
                        help="Rotate the earth")
    if "-s" in sys.argv or "-secret" in sys.argv:
        parser.add_argument('-s', '-secret',
                            dest="secret", action="store_true", default=False,
                            help="Enable secret options")
        parser.add_argument('-d', '-drill',
                            dest="drill", action="store_true", default=False,
                            help="drill baby, drill")
    

    【讨论】:

    • 这不适用于嵌套命令,因为您不知道-s 出现在层次结构中的哪个位置
    【解决方案2】:

    是的,您可以将help 选项设置为add_argumentargparse.SUPPRESS。这是来自argparse documentation 的示例:

    >>> parser = argparse.ArgumentParser(prog='frobble')
    >>> parser.add_argument('--foo', help=argparse.SUPPRESS)
    >>> parser.print_help()
    usage: frobble [-h]
    
    optional arguments:
      -h, --help  show this help message and exit
    

    【讨论】:

    • 然后它就显示为test ==SUPPRESS==。至少在与add_parser 一起使用时。
    猜你喜欢
    • 1970-01-01
    • 2018-12-14
    • 1970-01-01
    • 2014-03-26
    • 2020-07-29
    • 2014-03-04
    • 2015-08-03
    • 1970-01-01
    • 2014-03-08
    相关资源
    最近更新 更多