概述
1. argparse
是python的一个命令行解析包,非常编写可读性非常好的程序,一般有3个步骤
- 创建 ArgumentParser() 对象
- 调用 add_argument() 方法添加参数
- 使用 parse_args() 解析添加的参数
2.positional arguments
定位参数传值的方法--直接用 “参数名” 或者 ‘参数名’ (双引号或单引号均可)
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('integer', type=int, help='display an integer')
args = parser.parse_args()
print args.integer
如图例子需要输入一个整数赋值给integer,
1⃣️没有按照规定类型赋值;
2⃣️赋给未定义变量;
3⃣️用定位参数法时,如果有多个参数,只赋值部分报错;----必须对全部参数进行赋值,哪怕没有调用;
以上情况任何一种,都会报错
3. optional arguments
可选参数传值---两种表达方式
- 一种是通过一个
-
来指定的短参数,如-h
; - 一种是通过
--
来指定的长参数,如--help;
这两种方式可以同存,也可以只存在一个
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--integer", type=int, help='display an integer')
parser.add_argument('-float', type=float, help='display an integer')
args = parser.parse_args()
print (args.integer)
print(args.float)
测试
>> python3 02.py 3 2.5
usage: 02.py [-h] [--integer INTEGER] [-float FLOAT]
02.py: error: unrecognized arguments: 3 2.5
>>python3 02.py --integer 3 2.5
usage: 02.py [-h] [--integer INTEGER] [-float FLOAT]
02.py: error: unrecognized arguments: 2.5
>> python3 02.py --integer 3 -float 2.5
3
2.5
说明:
1⃣️--声明和--赋值要一一对应
2⃣️--和-只是形式,并没有对参数名的长度有非常严格的要求
3⃣️用可选参数法声明多个参数时,可以只对部分进行赋值,并不会报错;前提是没有调用未赋值的参数
4.可选参数
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--integer","-int", type=int, help='display an integer')
parser.add_argument('-float',"-f", type=float, help='display an integer')
args = parser.parse_args()
print (args.integer)
print(args.float)
同一个变量给了两个名字,调用时使用较长名字的那一个,否则会报错;但是在参数赋值时,传给哪一个都可以。
>>> python3 02.py --int 3 -f 2.5
Traceback (most recent call last):
File "02.py", line 8, in <module>
print (args.int)
AttributeError: 'Namespace' object has no attribute 'int'
参考:https://www.jianshu.com/p/fef2d215b91d
最后
以上就是鲤鱼香氛为你收集整理的argparse命令行解析包3. optional arguments的全部内容,希望文章能够帮你解决argparse命令行解析包3. optional arguments所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复