概述
argparse库简单使用
- 1. 简单介绍
- 2. 简单使用模板及语法辨析
- 2.1 必须掌握的类和方法或函数
- 2.2 简单使用模板
1. 简单介绍
argparse 模块可以让人轻松编写用户友好的命令行接口。程序定义它需要的参数,然后 argparse 将弄清如何从 sys.argv 解析出那些参数。 argparse 模块还会自动生成帮助和使用手册,并在用户给程序传入无效参数时报出错误信息。
摘自python官方文档
简单来说就是,当需要python文件的运行需要用到命令行运行的时候,需要从命令行中接收文件运行所需参数的时候,调用argparse库编写程序能够提供很好的命令行接口,方便程序从命令行中接收参数,并且能够在无法成功启动的时候提供各类报错信息。
2. 简单使用模板及语法辨析
2.1 必须掌握的类和方法或函数
①class argparse.ArgumentParser()
。要从命令行处接收参数之前必须声明一个ArgumentParse对象。ArgumentParse对象创建时可以接收若干参数,最常用的有description
参数,它的存储的内容是需要显示的帮助文本。还有prog
参数,它表示程序的名字。
②add_argument()
。该方法定义需要从命令行中具体接收什么参数,它的函数原型如下:
ArgumentParser.add_argument(name or flags...[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest])
这里面有几个必须掌握的参数:1°name or flags
- 要么是一个位置参数,要么是一个可供选择的参数,这个参数在后面举例子说明。
2°action
- 指定在接收参数之后要做的动作。默认的动作是'store'
,表示存储参数的值。还有两个要提到的动作分别是'store_true'
和'store_false'
,当关联这两个动作之后,该参数就只能存储True
或False
。'store_true'
表示只要该参数接收了任何信息,都把该参数的值设置为True
,而'store_false'
则相反,有信息进来则设置为False
。这两个动作的默认值分别为False
和True
,即如果没有任何信息进来,则分别设置为False
和True
。
3°default
- 为参数设置默认值。当命令行中没有传入相应的值,则设置默认值。默认值为None
。
4°type
- 为参数接收的值设置类型。默认情况下,解析器会将命令行参数当作简单字符串读入,而设置了type
参数之后就会被解读成其他类型,如float
或int
。不建议使用复杂的类型转换。
5°choices
- 为参数接收的值设置一系列限定的值,参数只能从这些值中选择。字面意思。
6°required
- 当参数是可选,但是又必须要求输入的时候,可以把该参数设置为True
,表示一定要输入。若设置为True
后又没有输入,则会报错。
7°help
- 包含参数简短描述的字符串。 当用户请求帮助时(一般是通过在命令行中使用 -h 或 --help 的方式),这些 help 描述将随每个参数一同显示。
③parse_args()
方法。原型如下:
ArgumentParser.parse_args(args=None, namespace=None)
将参数字符串转换为对象并将其设为命名空间的属性。返回带有成员的命名空间。args
- 要解析的字符串,通过对传入的这串字符串进行解析,就能获得对应位置参数或选项的值。默认值是从sys.argv
获取,只要知道命令行参数会被包含在这里面。
2.2 简单使用模板
文件test.py
import argparse
def parse():
'''该函数主要工作是从调用argparse库中的接口从命令行中接收字符串并解析。
'''
# 1. 创建一个默认的参数解析类
parser = argparse.ArgumentParser(prog='template', description='argparse simple template') # description参数-显示的帮助文本
# 2. 添加要从命令行中接收的参数
parser.add_argument('arg1', type=int)
parser.add_argument('-arg2', type=float)
parser.add_argument('--arg3')
# 3. 解析
args = parser.parse.args()
# 4. 返回命名空间
return args
def main():
args = parse()
# 可以使用 .运算符对参数进行索引
print(args)
# do something
if __name__ == '__main__':
main() # 调用主函数
当在命令行中输入如下命令:
pyhton test.py arg1 1 -arg2 2 --arg3 3
则会有以下输出:
Namespace(arg1=1, arg2=2, arg3=3)
这里需要注意的是,在调用add_argument()
方法添加参数的时候,一共设置了三个要解析的参数,分别为arg1,arg2和arg3。要注意的是:arg1
是没有添加单划线(-)或双划线(–),这表明了该参数是位置参数,是必须输入的。位置参数与python函数的参数的位置参数定义一样。不用显式使用参数名,可以根据位置来对应录入。所以也可以把上述的命令行输入改为如下形式:
python test.py 1 -arg2 2 --arg3 3
输出是跟上面的一样。
而另外两个参数arg2
和arg3
,一个是带单划线一个是带双划线的,这表明了它们都是可选参数,当没有设置required
参数的时候它们不是必需的。当带上单划线或双划线,在命令行输入时必须显式使用参数名,同时还是相应带上单划线或双划线。如上述命令行输入所示。
最后
以上就是爱笑面包为你收集整理的python包 argparse简单使用辨析 1. 简单介绍 2. 简单使用模板及语法辨析的全部内容,希望文章能够帮你解决python包 argparse简单使用辨析 1. 简单介绍 2. 简单使用模板及语法辨析所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复