python argparse模块简单解释

这篇博文很好理解,保存下。
看了几个python程序,但凡涉及到从命令行直接读取参数的时候,都有相似的如下代码,例如从命令行读取变量x,y的值

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("x", help="横坐标",type=int)
parser.add_argument('y', help="纵坐标",type=int)
args = parser.parse_args()

作为刚开始学python的小白,我一开始不太明白这段代码干啥用的,所以从网上找了很多博客文章,看了一圈之后感觉还是官网上的解释最详细明了,https://docs.python.org/2/howto/argparse.html,看完之后至少不迷糊了,所以写一个教程防止自己忘了。

这个模块的作用就是从命令行读取参数嘛,那到底是这么读取的呢,首先来看一个简单的程序 ,命名为no.py:

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("x", help="横坐标",type=int)
parser.add_argument('y', help="纵坐标",type=int)
args = parser.parse_args()
x=args.x
y=args.y
print(x,y);

这个程序可以实现从命令行读取x,y的值之后在输出。可以打开cmd,输入样例如下:python no.py 3 4

则出现结果为:
在这里插入图片描述

可以看到,程序执行了输出命令print,将x,y的值输出出来。

下面对这几个函数及其中的参数做一下说明。

其实这些函数的默认的参数都有很多,但我看很多程序基本也就用了几个,对一个小程序来说已经足够了。

add_argument()函数
可以看到上面这个函数中有三个参数,

第一个是名称,就是为你读取的变量起一个名字,例如x,y,这个你随便起一个你自己要名字。

第二个是help,这是提示信息,告诉你这个变量是啥东西,怎么看这些信息呢,在命令行输入:python no.py -h
在这里插入图片描述

然后就会出现帮助信息了

第三个是type,就是参数的类型嘛,整型,字符型,浮点型,看你想把它作为什么类型的变量了。

到这里我感觉就可以解决绝大多数问题了,但还有一个小地方就是关于那种前面带“-”的那种参数比如说什么“-v”,“-p”,"-h"这种奇怪的东西,一开始我也云里雾里,不知道这些是干嘛用的,然后看完了https://docs.python.org/2/howto/argparse.html之后大概有点明白了。想要弄明白的童鞋可以直接看Introducing Optional arguments 这部分

Optional arguments (可选参数)
上文中提到的这些带“-”的参数形式就是可选参数。

按我自己的理解嘛,这就好比是吃烧烤一样,在你点串儿的时候,烤串师傅一般会问你“放不放辣?”,如果你说放,那他就会在你的串上放上点辣椒面儿。

像“x”,“y”这样的参数就好比你点的串儿,而那些带“-”的就好比是辣椒面儿

比如:参数 x 表示羊肉串儿,那么 在 x 后面加上你自己定义的“-v”,即 x -v 就是加了辣的串,然后如果是 x -vvv,那就是变态辣,

或者你在设一个“-p”,用 x -p 表示加了孜然的羊肉串, x -v -p 就表示加了孜然和辣椒的羊肉串。

下面展示一个实例:

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("x", help="横坐标",type=int)
parser.add_argument('y', help="纵坐标",type=int)
parser.add_argument("-v",help="x翻倍",action="store_true")
args = parser.parse_args()
if args.v:
    args.x=args.x*2;
x=args.x
y=args.y
print(x,y);

如果加了参数 -v ,则x变为输入值的两倍。
在这里插入图片描述

还有一种就是 -v 后面带数字,比如 -v 1,-v 2 等等,这时候代码就要修改成

parser.add_argument("-v",help="x翻倍",type=int)

如果是 -vvv这种代码要修改成:

parser.add_argument("-v",help="x翻倍",action="count")

判断条件中的代码也要做相应的修改。详细的过程在链接中都有,想要了解详情的朋友可以自己去看一下。

到这最基本的功能就讲完了,目前只是做一点小程序,所以其他的没怎么看,不过这一点已经够我用的啦。
————————————————
版权声明:本文为CSDN博主「hacker_G」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/explorer9607/article/details/82623591

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值