【问题标题】:Python argparse difficultiesPython argparse 困难
【发布时间】:2017-06-12 17:55:07
【问题描述】:

我正在尝试使用内置 Python 模块 argparse 为我的程序创建命令行参数解析器。我希望用户能够正常运行我的程序,或者运行演示。运行演示需要一个演示编号,这将是一个命令行参数。因此,基本上,命令行参数可以采用这些格式之一。

  • python3 blah.py normal
  • python3 blah.py demo <demo#>

如何允许用户使用其中一个选项,但不能同时使用这两个选项?另外,如何使使用演示选项时需要演示编号而使用普通选项时不需要?

提前致谢。

【问题讨论】:

    标签: python-3.x command-line-arguments


    【解决方案1】:

    您可以使用互斥组(我已将参数更改为-demo number 和-normal):

    import argparse
    parser = argparse.ArgumentParser()
    group = parser.add_mutually_exclusive_group()
    group.add_argument('-demo', action='store',
                        dest='demonum',
                        help='demo execution')
    group.add_argument('-normal', action='store_true',
                        help='normal execution')
    parsed = parser.parse_args()
    print(parsed.demonum)
    print(parsed.normal)
    

    【讨论】:

    • 谢谢!另外,我怎样才能做到这两个选项都不违法?
    • @Anonymous1847 即使你不传递任何参数或参数的 1 也是有效的。只有当你同时使用两个参数时它才会说无效 python.exe d:\arguments.py -normal -demo 3
    • 是的。我在问如何要求用户使用互斥组中的一个(并且恰好是一个)参数。
    猜你喜欢
    • 2018-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-11
    • 2012-08-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多