前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python-argparse模块

python-argparse模块

作者头像
搁浅同学
发布2022-07-21 15:06:35
3010
发布2022-07-21 15:06:35
举报
文章被收录于专栏:搁浅测试同学小分享
argparse 是python自带命令行参数解析包,可以用来方便地读取命令行参数,我们常见的pytest、unittest等单元测试框架的命令行参数,也是通过argparse模块实现的。

一、使用的基本框架

创建一个解析器 --》添加相关参数 --〉解析参数

代码语言:javascript
复制
#!/usr/bin/python
# -*- coding: utf-8 -*-
import argparse

parser = argparse.ArgumentParser(description="demo")
parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for accumulator')
parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max,
                    help="sum the integers,default find the max")
args = parser.parse_args()

print(args.accumulate(args.integers))

我们通过控制台 输入 python3 argsparser_demo.py --help,我们可以看到相关说明

输入其他,可以计算参数的和计算出它们的最大值

二、ArgumentParser对象

代码语言:javascript
复制
class ArgumentParser(_AttributeHolder, _ActionsContainer):
    """Object for parsing command line strings into Python objects.

    Keyword Arguments:
        - prog -- The name of the program (default: sys.argv[0])
        - usage -- A usage message (default: auto-generated from arguments)
        - description -- A description of what the program does
        - epilog -- Text following the argument descriptions
        - parents -- Parsers whose arguments should be copied into this one
        - formatter_class -- HelpFormatter class for printing help messages
        - prefix_chars -- Characters that prefix optional arguments
        - fromfile_prefix_chars -- Characters that prefix files containing
            additional arguments
        - argument_default -- The default value for all arguments
        - conflict_handler -- String indicating how to handle conflicts
        - add_help -- Add a -h/-help option
        - allow_abbrev -- Allow long options to be abbreviated unambiguously
    """

    def __init__(self,
                 prog=None,
                 usage=None,
                 description=None,
                 epilog=None,
                 parents=[],
                 formatter_class=HelpFormatter,
                 prefix_chars='-',
                 fromfile_prefix_chars=None,
                 argument_default=None,
                 conflict_handler='error',
                 add_help=True,
                 allow_abbrev=True):

从上面ArgumentParser的构造函数,我们一般用的最多的参数是

prog:程序的名字,默认是sys.argv[0]

description:描述,描述这个argumentparser具体是什么作用

prefix_chars:命令的前缀

一切的命令都需要先创建一个参数解析器,然后通过给该解析器添加参数

三、add_argument()方法

解析器的add_argument主要是添加相关的命令参数

代码语言:javascript
复制
    def add_argument(self, *args, **kwargs):
        """
        add_argument(dest, ..., name=value, ...)
        add_argument(option_string, option_string, ..., name=value, ...)
        """

常用的参数:

name:命令行的参数,用来标记命令,比如-t ,--f

action:是说明该参数的存储类型,有store、const_store等

nargs: 来说明命令行参数的个数

const:根据action和nargs生成一个常量

default:如果命令没有传,则生成默认值

type:参数的类型

dest:参数的属性,通过parse_args()

help:显示参数帮助

在一些日常工作中,我们可以通过parser.parse_args()返回的参数,取参数的属性即dest,来做相关的逻辑,让我们的测试工作更加的有效率。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-04-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 暴走的软件测试Tester 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • argparse 是python自带命令行参数解析包,可以用来方便地读取命令行参数,我们常见的pytest、unittest等单元测试框架的命令行参数,也是通过argparse模块实现的。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档