zoukankan      html  css  js  c++  java
  • argparse.ArgumentParser()用法解析

    一、介绍

    argparse是python用于解析命令行参数和选项的标准模块,用于代替已经过时的optparse模块。argparse模块的作用是用于解析命令行参数。

    我们很多时候,需要用到解析命令行参数的程序,目的是在终端窗口(ubuntu是终端窗口,windows是命令行窗口)输入训练的参数和选项。

     

    二、使用步骤

    我们常常可以把argparse的使用简化成下面四个步骤

    1:import argparse

    2:parser = argparse.ArgumentParser()

    3:parser.add_argument()

    4:parser.parse_args()

    上面四个步骤解释如下:首先导入该模块;然后创建一个解析对象;然后向该对象中添加你要关注的命令行参数和选项,每一个add_argument方法对应一个你要关注的参数或选项;最后调用parse_args()方法进行解析;解析成功之后即可使用。

    三、例子讲解

    下面我们通过一个例子来进行讲解说明

    我们可以看到上面的第二个步骤,parser = argparse.ArgumentParser()

    它的作用就是:当调用parser.print_help()或者运行程序时由于参数不正确(此时python解释器其实也是调用了pring_help()方法)时,会打印这些描述信息,一般只需要传递description参数。

    下面会有例子输出,首先给出代码:

    #-*- coding: UTF-8 -*-
    import argparse   #步骤一
    
    def parse_args():
        """
        :return:进行参数的解析
        """
        parser = argparse.ArgumentParser(description="you should add those parameter")        # 这些参数都有默认值,当调用parser.print_help()或者运行程序时由于参数不正确(此时python解释器其实也是调用了pring_help()方法)时,                                                                     # 会打印这些描述信息,一般只需要传递description参数,如上。
        parser.add_argument('--addresses',default="sipingroad", help = "The path of address")
        parser.add_argument('--gpu', default=0)# 步骤二,后面的help是我的描述
        args = parser.parse_args()                                       # 步骤三
        return args
    
    if __name__ == '__main__':
        args = parse_args()
        print(args.addresses)            #直接这么获取即可。

    上面四个步骤已经分别对应上了,当我们在命令行敲入:

    python arg.py -h 

    输出提示为:

    如何获得命令参数值。

    我们可以直接通过args.addresses获得它的参数值当我们敲入python arg.py --addresses this-is-parameter-of-addresses 命令时


    会输出this-is-parameter-of-addresses

    到这里就总结了argparse模块常见的一些常见的用法。

    参考:



    本博客主要本人学习记录用。

    内容来源 于博客:https://blog.csdn.net/the_time_runner/article/details/97941409

    argparse模块官方文档:

    argparse是一个Python模块:命令行选项、参数和子命令解析器

    argparse模块可以让人轻松编写用户友好的命令行接口。程序定义它需要的参数。然后argparser将弄清

    如何从sys.argv解析出那些参数。argparse模块还会自动生成帮助和使用手册,并在用户给程序传入无效参数

    时报出错误信息。

    使用流程

      1. 创建解析器

       parser = argparse.ArgumentParser(description='Process some intergers.')

       使用argparser的第一步是创建一个ArgumentParser对象,ArgumentParser对象包含将命令行解析成Python数据类型所需的全部信息。

      2. 添加参数

       (1). parser.add_argument('integers', metavar='N', type=int, nargs='+', help = 'an integer for the accumulator')

       给一个ArgumentParser添加程序阐述信息是通过调用add_arguement()方法完成的。

      3. 解析参数

       (1). >>>parser.parse_args(['--sum', '7', '-1', '42' ])

       2 Namespace(accumulate=<built-in function sum>, integers=[7, -1, 42])

      ArgumentParser通过parse_args()方法解析参数

    ArgumentParser对象

    prog - 程序的名称(默认: sys.argv[0],prog猜测是programma的缩写)

    usage - 描述程序用途的字符串(默认值:从添加到解析器的参数生成)

    description - 在参数帮助文档之后显示的文本 (默认值:无)

    add_argument()方法

    name or flags - 一个命名或者一个选项字符串的列表

    action - 表示该选项要执行的操作

    default - 当参数未在命令行中出现时使用的值

    dest - 用来指定参数的位置

    type - 为参数类型,例如int

    choices - 用来选择输入参数的范围。例如choice = [1, 5, 10], 表示输入参数只能为1,5 或10

    help - 用来描述这个选项的作用

  • 相关阅读:
    Remove Duplicates from Sorted List II [LeetCode]
    Valid Palindrome [LeetCode]
    Merge Sorted Array [LeetCode]
    Binary Tree Postorder Traversal
    Subsets [LeetCode]
    Search for a Range [LeetCode]
    Reorder List [LeetCode]
    GCC 默认用哪个标准
    18 组装类举例
    17 实例方法、静态方法、类方法
  • 原文地址:https://www.cnblogs.com/yibeimingyue/p/13800159.html
Copyright © 2011-2022 走看看