zoukankan      html  css  js  c++  java
  • Python命令模块argparse学习笔记(三)

    • 参数组

    ArgumentParser.add_argument_group(title=None, description=None)
    

    默认情况下,当显示帮助消息时,ArgumentParser将命令行参数分组为“位置参数”和“可选参数”。
    当比这个默认参数有更好的参数概念分组时,可以使用add_argument_group()方法创建适当的组:

    >>> parser = argparse.ArgumentParser(prog='PROG', add_help=False)
    >>> group = parser.add_argument_group('group')
    >>> group.add_argument('--foo', help='foo help')
    >>> group.add_argument('bar', help='bar help')
    >>> parser.print_help()
    usage: PROG [--foo FOO] bar
    
    group:
      bar    bar help
      --foo FOO  foo help
    

    add_argument_group()方法返回一个参数组对象,它具有add_argument()方法,就像常规的ArgumentParser一样。
    将参数添加到组中时,解析器将其视为与普通参数类似,但将参数显示在单独的组中以获取帮助消息。
    add_argument_group()方法接受可用于定制此显示的标题和描述参数:

    >>> parser = argparse.ArgumentParser(prog='PROG', add_help=False)
    >>> group1 = parser.add_argument_group('group1', 'group1 description')
    >>> group1.add_argument('foo', help='foo help')
    >>> group2 = parser.add_argument_group('group2', 'group2 description')
    >>> group2.add_argument('--bar', help='bar help')
    >>> parser.print_help()
    usage: PROG [--bar BAR] foo
    
    group1:
      group1 description
    
      foo    foo help
    
    group2:
      group2 description
    
      --bar BAR  bar help
    

    任何不在用户定义组中的参数将返回到通常的“位置参数”和“可选参数”部分

    • 互斥组

    ArgumentParser.add_mutually_exclusive_group(required=False)
    

    创建一个互斥的组。 argparse将确保在命令行上只存在互斥组中的一个参数:

    >>> parser = argparse.ArgumentParser(prog='PROG')
    >>> group = parser.add_mutually_exclusive_group()
    >>> group.add_argument('--foo', action='store_true')
    >>> group.add_argument('--bar', action='store_false')
    >>> parser.parse_args(['--foo'])
    Namespace(bar=True, foo=True)
    >>> parser.parse_args(['--bar'])
    Namespace(bar=False, foo=False)
    >>> parser.parse_args(['--foo', '--bar'])
    usage: PROG [-h] [--foo | --bar]
    PROG: error: argument --bar: not allowed with argument --foo
    

    add_mutually_exclusive_group()方法也接受一个必需的参数,以表明至少需要一个互斥的参数:

    >>> parser = argparse.ArgumentParser(prog='PROG')
    >>> group = parser.add_mutually_exclusive_group(required=True)
    >>> group.add_argument('--foo', action='store_true')
    >>> group.add_argument('--bar', action='store_false')
    >>> parser.parse_args([])
    usage: PROG [-h](--foo | --bar)
    PROG: error: one of the arguments --foo --bar is required
    

    目前互斥的参数组不支持add_argument_group()的标题和描述参数

  • 相关阅读:
    引入其他字体库 和 字体样式设置
    onmousemove鼠标截取
    最大、最小值
    ruby环境sass编译中文出现Syntax error: Invalid GBK character错误解决方法
    时间戳
    JS性能优化 -- 函数节流
    css兼容问题
    上传文件(ajax结合form表单)
    文件下载
    input上传指定类型的文件
  • 原文地址:https://www.cnblogs.com/sch01ar/p/8433119.html
Copyright © 2011-2022 走看看