python argparse库_Python超好用标准函式库argparse(一)

不管什么或自己的电脑,我超爱用argparse这个套件。理由无他,因为用了之后可以用python简单地写出看起来很专业的命令列指令。那今天这篇文章主要就是介绍一下目前为止我常用的功能在干嘛。

argparse.ArgumentParser

来看看它的样子:

ArgumentParser(prog =无,用法=无,描述=无,Epilog =无)

这边我省略了一些很少用到的关键字参数。

prog:程序的名字,你也可以以把它覆盖写成任何你喜欢的字串。以示例来说,假设你是在example.py里用了ArguemntParser,而且没有特别指定prog是什么的话(也就是保持None),prog会被自动指定成example.py。

usage:字串,主要是会是来显示来告知使用者说应该怎么使用你写的程序(也就是example.py)。保持None的话就会自动根据您设定的参数产生相对应的说明字串(后面会解释)。

description :字串,通常是一段短暂的说明,用来告知使用者说这个程式在做什么。

epilog :字串,会出现在参数说明字串的最后面,通常是一些补充资料。

直接看一个简单的例子应该能够理解了:

来自argparse import ArgumentParser的example.py

parser1 = ArgumentParser()

parser2 = ArgumentParser(prog =“ my_example”)

parser3 = ArgumentParser(usage =“ usage”)

parser4 = ArgumentParser(description =“ argparse的简单演示”)

parser5 = ArgumentParser(epilog =“查看文档:https://docs.python.org/3/library/argparse.html “)

parser1.print_help()

#用法:example.py [-h]

##

可选参数:

#-h,--help显示此帮助消息并退出

parser2.print_help()

#用法:my_example [-h]

##

可选参数:

#-h,--help显示此帮助消息并退出

parser3.print_help()

#用法:用法

##

可选参数:

#-h,--help显示此帮助消息并退出

parser4.print_help()

#用法:example.py [-h] #

的argparse一个简单的演示

#可选参数:

#-h,--help显示此帮助信息并退出

parser5.print_help()

#用法:example.py [-h] #

可选参数:

#-h,--help显示此帮助信息并退出

#看到该文档:https://docs.python.org/3 /library/argparse.html

这样有研磨来彼此之间的差异了吧?其中-h这个选择性参数(optional arguments)是自动产生的。

加入参数

参数基本上分两种,一种是位置参数(位置参数),另一种就是选择性参数(可选参数),主要区别在于参数指定方式的不同。要说明这个区别,我们要先来介绍怎么告诉一个解析器要解析某种参数?又该以什么方式解析?

你可以使用ArgumentParser.add_argument来加入想解析的参数。用示例说明会比较好懂:

#__future__中的example2.py 从

argparse中导入print_function 导入ArgumentParserparser = ArgumentParser()

parser.add_argument(“ pos1”,help =“位置参数1”)

parser.add_argument(“-o”,“ --optional-arg”,help =“可选参数”,dest =“ opt” ,默认=“默认”)args = parser.parse_args()

print(“ positional arg:”,args.pos1)

print(“ optional arg:”,args.opt)

如果执行python example2.py -h就会出现

用法:example2.py [-h] [-o OPT] pos1位置参数:

pos1位置参数1可选参数:

-h,--help显示此帮助消息并退出

-o OPT,--optional-arg OPT

可选参数可选参数

看起来很专业吧。

根据上面的说明,我们执行python example2.py hello -o world就会看到:

位置arg:您好

可选arg:世界

执行python example2.py foo就会看到:

位置arg:foo

可选arg:默认

所以说啦,位置参数顾名思义,就是根据它出现的位置来指定它的值是多少,而可选参数与之相反,与位置无关,是根据替代来指定(以上面的例子来说,就是-o或--optional-arg后面跟着是谁就指定是谁)。

有关add_argument的一些参数:

default 可以使用指定这个参数的预设值是多少。

dest可以使用指定解析出来的参数的名字。以上面的例子来说,我指定-o的dest在opt,所以我在parse_args回传的args下,可以用args.opt拿到-o的值是多少。

型别

最后用一个例子示范把参数设定成指定的类型别。

#__future__中的example3.py 从

argparse中导入print_function 导入ArgumentParserparser = ArgumentParser()

parser.add_argument(“ n”,help =“重复时间”,type = int)

parser.add_argument(“-u”,“ --user-name”,dest =“ user_name”)args = parser.parse_args()

对于范围内的_(args.n):

print(“ Hello,{}”。format(args.user_name))

这个脚本就是会用指定的名称打招呼很多次XD。

执行python example3.py 3 -u Dboy你会看到:

你好,Dboy

你好,Dboy

你好,Dboy

基本上,所有参数都会以字串的形式给你,但在add_argument里,可以使用类型这个关键字去指定回传的型别。从源代码来看也没啥特别的,就是在回传前把字串传给指定型别做过渡,以这个例子来说,刚开始的n是字串"3",但会穿透int("3")把它转化成int。

那就先简单介绍这样啦。argparse还可以有很多进阶用法,例如说说设计自己的类型或subcommand之类的,有机会再介绍啰。

第二部分传送门:

在第1部分之前,有嘴炮说要来写一篇用argparse写子命令要怎么写,拖了这么久才有动力写这第二篇。 老实说要

2020-6-13 21:59:30

0

40

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值