python中的argparse模块

跟着输入一遍就了解了
东西不多的,你就复制粘贴,然后看看结果就了解了。
我这个讲解的内容,主要是针对yolov5代码中应用到的参数写的,需要的话,好好看看,不浪费时间的
一.简单应用:

import argparse

#1.创建解释器
parser = argparse.ArgumentParser()

#2.添加需要的参数
parser.add_argument('-a','--apple',choices=['big-apple','small-apple'])#'-a'为简称格式是-xxx '--apple'是确切名称 choices=['big-apple','small-apple']是我只能在这里头选,不在这里头就报错
parser.add_argument('--number', type=int, default=0)#'--number'定义的确切的变量名称,type=int变量的格式,默认值
parser.add_argument('fruit')#'fruit'定义的确切的变量名称,如果命令行输入的没有指定是给哪个变量输入,那就得是给这个了,而且必须得有输入,否则报错:argparsemodel.py: error: the following arguments are required: fruit

#进行参数解析
args = parser.parse_args()

#输出args的内容
print('-----args----', args)
#输出args中a变量的内容
print('----args.a----', args.apple)
#这里不能是args.a不能用简称去表示,不然会报错 AttributeError: 'Namespace' object has no attribute 'a'

r'''
(pytorch) PS C:\Users\11366\Desktop\yolov5-5.0> python C:\Users\11366\Desktop\yolov5-5.0\yolo代码解析\argparsemodel.py apple
输出:
-----args---- Namespace(apple=None, fruit='apple', number=0)
----args.a---- None
'''

r'''
python C:\Users\11366\Desktop\yolov5-5.0\yolo代码解析\argparsemodel.py -a big-apple tomota
输出:
-----args---- Namespace(apple='big-apple', fruit='tomota', number=0)
----args.a---- big-apple
'''

r'''
python C:\Users\11366\Desktop\yolov5-5.0\yolo代码解析\argparsemodel.py --number 123456 dododo
输出:
-----args---- Namespace(apple=None, fruit='dododo', number=123456)
----args.a---- None
'''

二.help示例:

import argparse

#1.创建解释器
parser = argparse.ArgumentParser()

#2.添加需要的参数
parser.add_argument('-a','--apple',choices=['big-apple','small-apple'], help="变量:苹果")#'-a'为简称格式是-xxx '--apple'是确切名称 choices=['big-apple','small-apple']是我只能在这里头选,不在这里头就报错
parser.add_argument('--number', type=int, default=0, help="变量数字")#'--number'定义的确切的变量名称,type=int变量的格式,默认值
parser.add_argument('fruit', help="变量:水果")#'fruit'定义的确切的变量名称,如果命令行输入的没有指定是给哪个变量输入,那就得是给这个了,而且必须得有输入,否则报错:argparsemodel.py: error: the following arguments are required: fruit

#进行参数解析
args = parser.parse_args()

#输出args的内容
print('-----args----', args)
#输出args中a变量的内容
print('----args.a----', args.apple)
#这里不能是args.a不能用简称去表示,不然会报错 AttributeError: 'Namespace' object has no attribute 'a'

输出:

r'''
python C:\Users\11366\Desktop\yolov5-5.0\yolo代码解析\argparsemodel.py -h
输出:
usage: argparsemodel.py [-h] [-a {big-apple,small-apple}] [--number NUMBER] fruit  #用来说明一下其中的内容和怎么用

positional arguments:#用来说明一下必须输入的变量,即:位置参数
  fruit                 变量:水果

optional arguments:#用来说明一下任意变量都有哪些以及他的备注help的内容
  -h, --help            show this help message and exit
  -a {big-apple,small-apple}, --apple {big-apple,small-apple}
                        变量:苹果
  --number NUMBER       变量数字
'''

三.action示例:
store 保存参数值,可能会先将参数值转换成另一个数据类型。若没有显式指定动作,则默认为该动作。

store_const 保存一个被定义为参数规格一部分的值,而不是一个来自参数解析而来的值。这通常用于实现非布尔值的命令行标记。

store_ture/store_false 保存相应的布尔值。这两个动作被用于实现布尔开关。

append 将值保存到一个列表中。若参数重复出现,则保存多个值。

append_const 将一个定义在参数规格中的值保存到一个列表中。

version 打印关于程序的版本信息,然后退出
原文链接:https://blog.csdn.net/Drievn/article/details/70821188

#1.创建解释器
parser = argparse.ArgumentParser()

#2.添加需要的参数
parser.add_argument('-a','--apple', action="store_true", help="变量:苹果")#'-a'为简称格式是-xxx '--apple'是确切名称 choices=['big-apple','small-apple']是我只能在这里头选,不在这里头就报错
parser.add_argument('--number', type=int, default=0, help="变量数字")#'--number'定义的确切的变量名称,type=int变量的格式,默认值
parser.add_argument('fruit', help="变量:水果")#'fruit'定义的确切的变量名称,如果命令行输入的没有指定是给哪个变量输入,那就得是给这个了,而且必须得有输入,否则报错:argparsemodel.py: error: the following arguments are required: fruit

#进行参数解析
args = parser.parse_args()

#输出args的内容
print('-----args----', args)
#输出args中a变量的内容
print('----args.a----', args.apple)
#这里不能是args.a不能用简称去表示,不然会报错 AttributeError: 'Namespace' object has no attribute 'a'

这里主要看store_true这个功能,即:若触发test_action,则为True,否则为False:

注意:加入action的时候,不能加入choices选项不然报错TypeError: init() got an unexpected keyword argument ‘choices’

输入:python C:\Users\11366\Desktop\yolov5-5.0\yolo代码解析\argparsemodel.py --apple
输出:
-----args---- Namespace(apple=True, fruit=‘big-apple’, number=0)
----args.a---- True

如若输入:(pytorch) PS C:\Users\11366\Desktop\yolov5-5.0> python C:\Users\11366\Desktop\yolov5-5.0\yolo代码解析\argparsemodel.py --apple big-apple aaa
会报错:
usage: argparsemodel.py [-h] [-a] [–number NUMBER] fruit
argparsemodel.py: error: unrecognized arguments: aaa
原因:未知
参考网站1:https://blog.csdn.net/qq_40520596/article/details/112260228?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166747787516782427472097%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=166747787516782427472097&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allbaidu_landing_v2~default-1-112260228-null-null.142v62pc_rank_34_queryrelevant25,201v3control_1,213v1t3_esquery_v2&utm_term=argparse%E6%A8%A1%E5%9D%97dest%E5%8F%82%E6%95%B0&spm=1018.2226.3001.4187
参考网站2:https://blog.csdn.net/Drievn/article/details/70821188
四.nargs
改变代码:parser.add_argument('--number', type=int,nargs=2, default=0, help="变量数字")
输入、输出:

'''
输入:python C:\Users\11366\Desktop\yolov5-5.0\yolo代码解析\argparsemodel.py --numbe 1
输出:usage: argparsemodel.py [-h] [-a] [--number NUMBER NUMBER] fruit
argparsemodel.py: error: argument --number: expected 2 arguments
缺少变量
再输入:(pytorch) PS C:\Users\11366\Desktop\yolov5-5.0> python C:\Users\11366\Desktop\yolov5-5.0\yolo代码解析\argparsemodel.py --numbe 1 2 banana
输出:-----args---- Namespace(apple=False, fruit='banana', number=[1, 2])
----args.a---- False
'''

最后附上:
在这里插入图片描述转载于上一个网站

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值