zoukankan      html  css  js  c++  java
  • python学习之argparse模块

    argparse模块可以编写用户友好的命令行界面。

    class argparse.ArgumentParser(
        prog=None, usage=None, description=None, epilog=None, parents=[], 
        formatter_class=argparse.HelpFormatter, prefix_chars='-', fromfile_prefix_chars=None, 
        argument_default=None, conflict_handler='error', add_help=True, allow_abbrev=True)

    创建一个新的ArgumentParser对象。
    所有参数应作为关键字参数传递。
    每个参数在下面有其自己的更详细的描述,但简言之,它们是:

    prog - 程序的名称(默认值:sys.argv [0])
    usage - 描述程序使用的字符串(默认值:从添加到解析器的参数生成)
    description - 在参数帮助之前显示的文本(默认值:无)
    epilog - 参数帮助后显示的文本(默认值:无)
    parents - 也应包含其参数的ArgumentParser对象的列表
    formatter_class - 用于自定义帮助输出的类
    prefix_chars - 可选参数前缀的字符集(默认值:' - ')
    fromfile_prefix_chars - 要从中读取附加参数的文件前缀的字符集(默认值:无)
    argument_default - 参数的全局默认值(默认值:无)
    conflict_handler - 解决冲突的可选项的策略(通常是不必要的)
    add_help - 将-h / - help选项添加到解析器(默认值:True)
    allow_abbrev - 如果缩写是明确的,则允许缩短长选项。 (默认值:True)

    在版本3.5中更改:allow_abbrev参数已添加。

    下面分别进行详细介绍:

    prog

    默认情况下,ArgumentParser对象使用sys.argv[0]来确定如何在帮助消息中显示程序的名称。

    例如,使用以下代码来考虑一个名为myprogram.py的文件:

    import argparse
    parser = argparse.ArgumentParser()
    parser.add_argument('--foo', help='foo help')
    args = parser.parse_args()
    

     该程序的帮助将显示myprogram.py作为程序名称(无论从哪里调用程序):

    $ python myprogram.py --help
    usage: myprogram.py [-h] [--foo FOO]
    
    optional arguments:
     -h, --help  show this help message and exit
     --foo FOO   foo help
    $ cd ..
    $ python subdir/myprogram.py --help
    usage: myprogram.py [-h] [--foo FOO]
    
    optional arguments:
     -h, --help  show this help message and exit
     --foo FOO   foo help
    

     要更改此默认行为,可以使用argumentParser的prog=param提供另一个值:

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

     请注意,无论从sys.argv[0]还是从prog=param确定,程序名称可用于帮助使用%(prog)格式说明符的消息。

    >>> parser = argparse.ArgumentParser(prog='myprogram')
    >>> parser.add_argument('--foo', help='foo of the %(prog)s program')
    >>> parser.print_help()
    usage: myprogram [-h] [--foo FOO]
    
    optional arguments:
     -h, --help  show this help message and exit
     --foo FOO   foo of the myprogram program
    

    usage

    默认情况下,ArgumentParser从其包含的参数中计算使用消息。

    可以使用usage = keyword参数覆盖默认消息。

    ArgumentParser.add_argument(name or flags ... [,action] [,nargs] [,const] [,default] [,type] [,choices] [,required] [,help] [,metavar] [,dest] )

    定义一个命令行参数应如何解析。每个参数在下面有其自己的更详细的描述,但简言之,它们是:

    name or flags - 名称或选项字符串列表,例如foo或-f,--foo。
    action - 在命令行遇到此参数时要采取的基本操作类型。
    nargs - 应该消耗的命令行参数的数量。
    const - 某些操作和nargs选择所需的常量值。
    default - 如果参数在命令行中不存在,则生成的值。
    type - 要转换命令行参数的类型。
    choices - 参数的允许值的容器。
    required - 是否可以省略命令行选项(仅可选)。
    help - 简要说明论点的作用。
    metavar - 使用消息中的参数的名称。
    dest - 要添加到parse_args()返回的对象的属性的名称。
    ArgumentParser.parse_args(args = None,namespace = None)

         将参数字符串转换为对象,并将它们分配为命名空间的属性。返回填充的命名空间。

         以前调用add_argument()确切地确定了创建的对象以及它们的分配方式。
         有关详细信息,请参阅add_argument()的文档。

         默认情况下,参数字符串取自sys.argv,并为属性创建一个新的空名称空间对象。

  • 相关阅读:
    Using Repository and Unit of Work patterns with Entity Framework 4.0
    Accessing Your Model's Data from a Controller
    ASP.NET MVC 3 Internationalization
    Test your ASP.NET MVC or WebForms Application on IIS 7 in 30 seconds
    定时执行Web测试
    对包含HttpContext.Current.Cache的代码进行单元测试
    ASP.NET MVC判断基于Cookie的Session过期
    Selenium testing Iframe
    [Tips]: ASP.NET MVC得到controller的名字
    [Tips]:"RemoteOperationException: ERROR: wrong password for user" with Oracle 10g
  • 原文地址:https://www.cnblogs.com/leomei91/p/7687203.html
Copyright © 2011-2022 走看看