概述
首先解释下什么是参数解析,因为很多情况下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)。
最后
以上就是甜美冥王星为你收集整理的python基础——命令行参数argparser模块的使用的全部内容,希望文章能够帮你解决python基础——命令行参数argparser模块的使用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复