argparse库教程(超易懂)
argparseargparse库是用来给python脚本传入参数的库啥是传入参数?举个栗子,比如说我们有一个叫mycode.py的python脚本,我们在命令行里运行它(别忘了先进入当前目录,用cd命令)1、不带参数的运行:python mycode.py2、带参数的运行:python mycode.py 520 1314 -love520,1314这样的叫做positional argumen
一、argparse功能
argparse库是用来给python脚本传入参数的库
啥是传入参数?举个栗子,比如说我们有一个叫mycode.py的python脚本,我们在命令行里运行它(别忘了先进入当前目录,用cd命令)
1、不带参数的运行:
python mycode.py
2、带参数的运行:
python mycode.py 520 1314 -love
- 520,1314这样的叫做positional arguments
- -love这样的叫做optional arguments
之后我们会详细讲述
这些520,1314等参数会被python读取,然后加以利用,这就是传入参数
二、从最简单的应用开始
求两整数a,b之和
mycode.py:
import argparse
parser = argparse.ArgumentParser()
#这个parse对象相当于一个总容器,存放着全部的信息
parser.add_argument("a",type=int)
#添加一个positional arguments,叫a,读取类型为int(默认是字符串)
parser.add_argument("b",type=int)
#添加一个positional arguments,叫b,读取类型为int(默认是字符串)
args = parser.parse_args()
#parse_args的类型是Namespaces,相当于一个字典,存放着所有positional arguments
sum=args.a+args.b #从args调出参数a和b,求和
print(sum)
命令行:(别忘了先进入当前目录,用cd命令)
python mycode.py 1 2
输出:3
如果不带参数
就会报错,并且在usage后展示用法模板
>>>python mycode.py
usage: mycode.py [-h] a b
mycode.py: error: the following arguments are required: a, b
注:[-h]表示有一个optional argument叫做-h,这个是它自己带的,也就是help
我们用一下-h,它会教我们怎么打命令
>>>python mycode.py -h
usage: mycode.py [-h] a b
positional arguments:
a
b
optional arguments:
-h, --help show this help message and exit
加文字描述:
两种文字描述:
1、整个python文件: description=‘此代码用于求两个整数之和’
2、每个positional argument:help=“第一个整数”
方便用户查看
import argparse
parser = argparse.ArgumentParser(description='此代码用于求两个整数之和')
#这个parse对象相当于一个总容器,存放着全部的信息
parser.add_argument("a", type=int,help="第一个整数")
#添加一个positional arguments,叫a,读取类型为int(默认是字符串)
parser.add_argument("b",type=int,help="第二个整数")
#添加一个positional arguments,叫b,读取类型为int(默认是字符串)
args = parser.parse_args()
#parse_args的类型是Namespaces,相当于一个字典,存放着所有positional arguments
sum=args.a+args.b #调出参数a和b,求和
print(sum)
效果:
PS C:\Users\fan.19\fan19-hub> python mycode.py -h
usage: mycode.py [-h] a b
此代码用于求两个整数之和
positional arguments:
a 第一个整数
b 第二个整数
optional arguments:
-h, --help show this help message and exit
那么这个最简单的应用就说完了,接下来我们来详细讲一下argparse里面的东西。主要的东西都在add argument这个函数里!!!
三、add_argument函数——核心!!
键 | 接受的值 | 作用 | 举例 |
---|---|---|---|
name | 字符串 | 变量的名字 | ‘radius’ |
nargs | 数字或’?‘或’*‘或’+’ | 用来说明传入的参数个数(符号意义和正则表达式里的一致) | nargs=’?’ nargs=2 |
type | list, str, tuple, set, dict等 | 设置读取参数的类型 | type=int |
default | 类型跟type统一 | 设置默认值 | default=1 |
choices | 装选项的list | 参数值只能从几个选项里面选择 | choices=[1,2,3,4] |
required | True或False | 这个可选参数是否必须有(只能用于-love这样的可选参数!否则报错) | required=True |
help | 字符串 | 说明一下这个参数是干嘛的 | help=“I don’t know” |
action | 六种内置动作 | 一旦这个有参数,就会触发相应的动作 | action=‘store_true’ |
这几个键是最常用的,此表不全请注意
详细讲一下几个不太好懂的:
1.name
函数的第一项就是name
add_argument("b",type=int,help="第二个整数")
2.nargs
用来说明传入的参数的个数,可以是
- 具体数字:要传进来几个
- ‘*’:任意个 any
- ‘?’:一个或者没有 1/0
- ‘+’:至少一个 ≥1
后期你调出这个参数的时候,它是一个list的形式储存你传入的东西
那我们改进一下上面求两个整数和的程序
import argparse
parser = argparse.ArgumentParser(description='此代码用于求两个整数之和')
#这个parse对象相当于一个总容器,存放着全部的信息
parser.add_argument("integers", type=int,nargs=2,help="第一个整数")
#添加俩positional arguments,叫integers,读取类型为int
args = parser.parse_args()
#parse_args的类型是Namespaces,相当于一个字典,存放着所有positional arguments
integers=args.integers #调出来intergers,它是一个list!!
print("integer的类型是:",type(integers))
sum=sum(integers) #list元素求和
print(sum)
3.type
type用来决定,你是以什么样的数据类型把参数读进来的
默认的话是字符串,跟input函数一样!!!!
看这个大乌龙程序:
mycode:
import argparse
parser = argparse.ArgumentParser(description='此代码用于求两个整数之和')
#这个parse对象相当于一个总容器,存放着全部的信息
parser.add_argument("a",help="第一个整数???不是")
#添加一个positional arguments,叫a,读取类型为int(默认是字符串)
parser.add_argument("b",,help="第二个整数???不是")
#添加一个positional arguments,叫b,读取类型为int(默认是字符串)
args = parser.parse_args()
#parse_args的类型是Namespaces,相当于一个list,存放着所有positional arguments
sum=args.a+args.b #调出参数a和b,求和
print(sum)
命令行:
python mycode.py 1 2
输出的是12,而不是我们想要的1+2=3!!!!!!
这波是直接把两个字符连起来了qwq
import argparse
parser = argparse.ArgumentParser(description='命令行中传入一个数字')
parser.add_argument('integers', type=int, nargs='+',help='传入的数字')
args = parser.parse_args()
#对传入的数据进行加总
print(sum(args.integers)
3.action
可以参照这篇:argparse 中action参数
如果对您有帮助,请不吝点赞哦~,谢谢!!
更多推荐
所有评论(0)