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

    • 默认参数

    ArgumentParser.set_defaults(**kwargs)
    

    set_defaults()可以设置一些参数的默认值

    >>> parser = argparse.ArgumentParser()
    >>> parser.add_argument('foo', type=int)
    >>> parser.set_defaults(bar=123, baz='test')
    >>> parser.parse_args(['456'])
    Namespace(bar=123, baz='test', foo=456)
    

    解析器级别的默认值会覆盖参数级别的默认值

    >>> parser = argparse.ArgumentParser()
    >>> parser.add_argument('--foo', default='bar')
    >>> parser.set_defaults(foo='test')
    >>> parser.parse_args([])
    Namespace(foo='test')
    

    get_defaults()方法可以获取add_argument()和set_defaults()中设置的默认值

    >>> parser = argparse.ArgumentParser()
    >>> parser.add_argument('--foo', default='bar')
    >>> parser.set_defaults(air='test')
    >>> parser.get_default('air')
    'test'
    >>> parser.get_default('foo')
    'bar'
    
    • 参数部分使用

    如果脚本只使用所传参数中的几个参数,要把其他的参数传给其他脚本,可以使用parse_known_args()方法

    ArgumentParser.parse_known_args(args=None, namespace=None)
    

    它的工作方式与parse_args()非常相似,只是在出现额外的参数时不会产生错误,而是返回一个包含填充名称空间和剩余参数字符串的元组和列表

    import argparse
    parser = argparse.ArgumentParser()
    parser.add_argument('bar')
    parser.add_argument('-t','--thread')
    args = parser.parse_known_args()
    if args:
       print(args)
    

    运行结果

    前缀匹配规则适用于parse_known_args()

    • 打印帮助

    ArgumentParser.parse_args()
    
    格式化和打印任何使用或错误消息
    >>> parser = argparse.ArgumentParser()
    >>> parser.add_argument('bar')
    >>> parser.parse_args()
    usage: [-h] bar
    : error: the following arguments are required: bar
    

    还有几种格式化的方法

    ArgumentParser.print_usage(file=None)
    
    打印一个关于如何在命令行上调用ArgumentParser的简要说明
    >>> parser = argparse.ArgumentParser()
    >>> parser.add_argument('--foo')
    >>> parser.print_usage()
    usage: [-h] [--foo FOO]
    

    如果文件是None,则为sys.stdout

    ArgumentParser.print_help(file=None)
    
    打印帮助信息,包括程序使用方法和有关使用ArgumentParser的参数信息
    >>> parser = argparse.ArgumentParser()
    >>> parser.add_argument('--foo')
    >>> parser.print_help()
    usage: [-h] [--foo FOO]
    
    optional arguments:
      -h, --help  show this help message and exit
      --foo FOO
    

    如果文件是None,则为sys.stdout

    ArgumentParser.format_usage()
    

    返回一个字符串,而不是打印,其中包含如何在命令行上调用ArgumentParser的简要说明

    >>> parser = argparse.ArgumentParser()
    >>> parser.add_argument('--foo')
    >>> parser.format_usage()
    'usage: [-h] [--foo FOO]
    '
    
    还有一个也是返回字符串的方法

    ArgumentParser.format_help()
    

    返回一个包含帮助信息的字符串,包括程序用法以及有关使用ArgumentParser的参数信息

    >>> parser = argparse.ArgumentParser()
    >>> parser.add_argument('--foo')
    >>> parser.format_help()
    'usage: [-h] [--foo FOO]
    
    optional arguments:
      -h, --help  show this help message and exit
      --foo FOO
    '
    
    • 退出方法

    ArgumentParser.exit(status=0, message=None)
    
    此方法终止程序,以指定状态退出,如果给定,则在此之前打印消息
    >>> import argparse
    >>> parser = argparse.ArgumentParser()
    >>> parser.exit(message='test')
    test
    

    然后脚本就直接退出了

    ArgumentParser.error(message)
    
    此方法将包含消息的使用消息打印到标准错误,并终止状态码为2的程序
    >>> parser = argparse.ArgumentParser()
    >>> parser.error(message='run error')
    usage: [-h]
    : error: run error
    

    打印完错误信息后脚本就直接退出了

  • 相关阅读:
    Struts2项目问题及解决方式
    CSS样式编写案例
    第二个项目总结
    CSS布局中的问题解决方式
    CSS3中的Flexbox弹性布局(二)
    CSS3中的Flexbox弹性布局(一)
    python----递归函数
    python----函数进阶
    python----函数
    python----装饰器
  • 原文地址:https://www.cnblogs.com/sch01ar/p/8439872.html
Copyright © 2011-2022 走看看