首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python中的参数解析argparse用法

Python中的参数解析argparse用法

作者头像
AsiaYe
发布2019-12-10 16:32:26
1.6K0
发布2019-12-10 16:32:26
举报
文章被收录于专栏:DBA随笔DBA随笔DBA随笔

//

Python中的参数解析argparse用法

//

在使用python写脚本的时候,我们经常会用到命令行解析包argparse,我们引入这个包之后,就可以对传入python的参数进行解析,得到我们想要的结果。

下面说说这个参数解析包的用法,大概分为如下几步:

1、import argparse,首先使用这行代码导入相应的模块。

2、初始化一个参数解析的实例

parser = argparse.ArgumentParser()

3、添加相应的参数

parser.add_argument(),这个函数特别丰富,包含很多内容,这里我们讲解比较简单的用法,其他的大家可以下去进行测试。

4、对参数进行解析

parser.parse_args()

5、对于意外的结果抛出异常

parser.error()

我们来看一段代码:

#encoding=utf-8
import argparse

if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument('--name', help='please input a name')
    parser.add_argument('--age', help='please input a age')
    parser.add_argument('--score', help='please input a score')
    args = parser.parse_args()
    if not args.name:
        parser.error('No name, add --name')
    if not args.age:
        parser.error('No age, add --age')
    if not args.score:
        parser.error('No score, add --score')
    name = args.name
    age = args.age
    score = args.score
    print "name=",name,"age=",age,"score=",score
    # 可以打印出最终存储的参数空间属性
    print args
    # 打印针对这个添加参数模块的使用方法
    print parser.print_usage()
    # 打印针对这个添加参数模块的使用帮助说明(此处会打印出使用方法)
    print parser.print_help()

第5行中,我们创建了一个parser实例;

第6~8行,我们传递了name、age、score三个参数,其中,help后面的内容是参数的帮助信息

第9行是对参数进行解析。

第10~15行是对异常信息的一个捕获,如果没有输入参数,则会输出相应的相应字符串。

再往下就是赋值和打印过程了。

可以看到,我们可以使用--name --age --score的方法去调用这个脚本,需要注意的是这三个参数的顺序可以颠倒,不影响对应的值。

我们尝试一下上面脚本的执行结果:

E:\> python parser_test.py --score   --age   --name yeyz
name= yeyz age=  score= 
Namespace(age='26', name='yeyz', score='100')
usage: parser_test.py [-h] [--name NAME] [--age AGE] [--score SCORE]
None
usage: parser_test.py [-h] [--name NAME] [--age AGE] [--score SCORE]

optional arguments:
  -h, --help     show this help message and exit
  --name NAME    please input a name
  --age AGE      please input a age
  --score SCORE  please input a score
None

可以看到,我们的参数分别是:

--srore 100

--age 26

--name yeyz

这里参数的顺序和函数中参数的顺序并不一致,但是我们可以发现函数还是能成功解析到正确的结果。

打印出来:name=yeyz,age=26,score=100

紧接着,我们print args,打印出来了args中的所有值,在使用print parser.print_usage()打印出来了该函数的使用说明。

最后print parser.print_help()打印帮助项。

利用这种方法,当一个没有用过这个脚本的开发者直接执行这个脚本的时候,可以比较友好的给出脚本的使用方法,能够让你的脚本更加优雅,其实是一种不错的开发选择。

有帮助的话还希望点下再看哈

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

本文分享自 DBA随笔 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档