python基础——命令行参数argparser模块的使用

首先解释下什么是参数解析,因为很多情况下python程序或者是shell脚本都是运行在linux的命令行环境下的。这时,可不是简单的运行下就可以的,有的还需要加入必要的参数。

————————————————————————————————————————————

参数解析的意义

python python_argparser.py echo

主要针对在命令行下开发程序,运行之后将参数解析,并且输出 echo alright。

python python_argparser.py 3(其实对应程序中的参数x

比如还可以在程序中进行某些计算,例如此处可以print args.x**2,输出结果9。

参数解析大概就是这种用法。

python的argparse模块

argparse,它是Python标准库中推荐使用的编写命令行程序的工具。

使用命令行程序,感觉相当好,不用再花大把时间去研究界面问题,尤其是vc++中尤其繁琐。

argparse是一个完整的参数处理库。参数可以根据add_argument()action选项触发不同action。默认动作是存储参数值。支持type(指定存储类型)和dest(指定存储变量)等参数。

支持的action有存储参数(单个,或作为列表的一部分);存储常量的值(对布尔开关true/false有特殊处理)。

然后使用函数parse_args()进行参数解析,这个函数的输入默认是sys.argv[1:],也可以使用其他字符串列表。

import argparse
parser = argparse.ArgumentParser()
parser.add_argument()

name or flags:该参数接受选项参数或者是位置参数(一串文件名,表示文件所在的位置),如上面的address或者-p, –port.

parser.add_argument('-f', '--foo')    #选项参数  
parser.add_argument('/bar')            #位置参数 
parser.add_argument('-u',nargs=2)  
parser.parse_args('-u a b'.split()) 

输出结果如下

Namespace(u=['a', 'b'])  

argparse模块的主要函数

parser.parse_args()

解释:首先导入该模块;然后创建一个解析对象;

然后向该对象中添加你要关注的命令行参数和选项,每一个add_argument方法对应一个你要关注的参数或选项;

最后调用parse_args()方法进行解析;解析成功之后即可使用,下面简单说明一下步骤2和3。

步骤2

parser.add_argument 用于添加可用参数, 所有需要调用的参数都需要利用该函数进行添加。
支持形如 ‘-t’, ‘–tcp’ 这两种参数长短语法。

parser.add_argument("echo")

这次,我们增加了一个add_argument()方法,用来设置程序可接受的命令行参数。现在要运行程序,就必须设置一个参数。

步骤3

parse_args()方法实际上从我们的命令行参数中返回了一些数据,在上面的例子中是echo
这个像“魔法”一样的过程,是argparse自动完成的

parser.add_argument("square", help="display a square of a given number", type=int)

尽管自动产生的帮助信息展示地很美观,但是我们仍然无法只根据echo这个参数知道它是做什么的。所以,我们增加了一些东西help=”“,使得它变得更有用。

改变输入参数类型

这个程序并不能正确运行,因为argparse会将输入当作字符串处理,所以我们需要设置它的类型(type=int)。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值