Python argparse库的基本使用步骤
作者:万里鹏程转瞬至 发布时间:2023-12-14 08:02:29
argparse库是python下的一个命令行参数管理库,支持int、str、float、bool、数组等5种基本数据类型。在解析命令行参数时还支持默认值。此外,还支持修改命令行参数,在代码中增加命令行参数等操作。通过argparse库,可以实现参数的简易管理,控制代码执行中的一些流程或参数值。
基本用法
1、int支持
argparse的写法 ,class_nums的默认值为7
parser.add_argument("--class_nums", type=int, default=7)
命令行传参写法(假设程序文件名称为test.py), 传入了新的值,覆盖了默认值
test.py --class_nums 8
2、str支持
argparse的写法,load_from没有设置默认值,如果要设置的话请设置default
parser.add_argument("--load_from", type=str, help='load trained model to generate predictions of validation set')
命令行传参写法(假设程序文件名称为test.py), 传入了新的值"best.pth"赋值给load_from
test.py --load_from "best.pth"
3、float支持
argparse的写法 ,lr的默认值为=0.0003
parser.add_argument("--lr", type=float, default=0.0003)
命令行传参写法(假设程序文件名称为test.py), 传入了新的值,覆盖了默认值
test.py --lr 0.001
4、bool支持
argparse的写法 ,pretrained的默认值为None。store_true表示传入参数则为True
parser.add_argument("--pretrained", action="store_true")
命令行传参写法(假设程序文件名称为test.py), 此时pretrained的值为True
test.py --pretrained
5、数组支持
argparse的写法 ,input_shape的默认值为[256, 256]。nargs表示传入参数可能存在多个值,也就是说传入的参数不一定是2个,3个也可以
parser.add_argument('--input_shape', nargs='+', type=int, default=[256, 256])
命令行传参写法(假设程序文件名称为test.py), 此时input_shape的值为[512, 512]
test.py --input_shape 512 512
完整调用
以下代码实现了取参数值,修改参数值,新增参数值的完整调用。在非控制台环境下执行下面代码是无法修改默认参数的,只能是在控制台下执行才能修改参数
import argparse
class Options:
def __init__(self):
parser = argparse.ArgumentParser('命名空间')
parser.add_argument("--class_nums", type=int, default=7)
parser.add_argument("--pretrained", action="store_true")
parser.add_argument("--lr", type=float, default=0.0003)
parser.add_argument("--load_from", type=str,
help='load trained model to generate predictions of validation set')
parser.add_argument('--input_shape', nargs='+', type=int, default=[256, 256])
self.parser = parser
def parse(self):
args = self.parser.parse_args()
return args
if __name__ == "__main__":
args = Options().parse()
print("\n原始参数:")
print(args)
print("\n取参数值:")
print("args.class_nums:",args.class_nums)
print("\n修改参数:")
args.input_shape=[512,512]
print(args)
print("\n新增参数:")
args.new_key=[512,512]
print(args)
博主测试代码:python .\test.py --input_shape 128 128
执行输出如下所示:
原始参数:
Namespace(class_nums=7, input_shape=[128, 128], load_from=None, lr=0.0003, pretrained=False)
取参数值:
args.class_nums: 7
修改参数:
Namespace(class_nums=7, input_shape=[512, 512], load_from=None, lr=0.0003, pretrained=False)
新增参数:
Namespace(class_nums=7, input_shape=[512, 512], load_from=None, lr=0.0003, new_key=[512, 512], pretrained=False)
来源:https://blog.csdn.net/a486259/article/details/125848708
猜你喜欢
- Python产生一个数值范围内的不重复的随机数,可以使用random模块中的random.sample函数,其用法如下:import ran
- test.asp 测试演示文件clsrsa.asp 实现rsa加密与解密的vbs类文件下面是代码:1. test.asp<%rem 文
- PDO::queryPDO::query — 执行 SQL 语句,返回PDOStatement对象,可以理解为结果集(PHP 5 >=
- 在my.cnf中设置了sql_mode='STRICT_TRANS_TABLES';却发现还是有非法数据的写入,比如无符号整
- 前言嗨喽~大家好呀,这里是魔王呐 ~!在学习Python的过程中需要不断的积累和练习,这样才能够走的更远,今天一起来学习怎么用P
- 代码如下:<% '功能:取得文件扩展名 Function getFileExt(sFileNam
- 本文实例展示了Python Tkinter实现简单布局的方法,示例中备有较为详尽的注释,便于读者理解。分享给大家供大家参考之用。具体如下:#
- 最近认识了一个做Python语音识别的朋友,聊天时候说到,未来五到十年,Python人工智能会在国内掀起一股狂潮,对各种应用的冲击,不下于淘
- 美餐每天发一个用Excel汇总的就餐数据,我们把它导入到数据库后,行政办公服务用它和公司内的就餐数据进行比对查重。初始实现是单线程,和imp
- 正文首先得说明的是,Python的类分为经典类 和 新式类经典类是python2.2之前的东西,但是在2.7还在兼容,但是在3之后的版本就只
- 使用fso对象遍历指定文件夹函数:'遍历文件夹sub ListFolderContents(path) &nbs
- 本周暂时比较清闲,可以保持每日一更的速度。国外身份证项目新增需求,检测出身份证正面的人脸。最开始考虑mobilenet-ssd,经同事提醒,
- 本文通过问答的开式来解答在mysql在命名用过程中所遇到的常见问题。谁能连接,从那儿连接?你可以允许一个用户从特定的或一系列主机连接。有一个
- 在我们进行注册码的有效期验证时,通常使用获取网络时间的方式来进行比对。以下为获取网络时间的几种方式。方法一需要的时间会比较长,个别电脑上可能
- 1 案例描述输入三个整数x,y,z,请把这三个数由小到大输出。2 Python实现2.1 方法一(官方)L = []for i in ran
- 1. ASCII 返回与指定的字符对应的十进制数; SQL> select ascii(A) A,ascii(a) a,as
- random模块该模块实现了各种分布的伪随机数生成器。(包括在实数轴上计算均匀、正态(高斯)、对数正态、负指数、伽马和贝塔分布的函数)不应将
- 在实际使用numpy时,我们常常会使用numpy数组的-1维度和”:”用以调用numpy数组中的元素。也经常因为数组的维度而感到困惑。总体来
- 本文实例讲述了PHP实现二叉树深度优先遍历(前序、中序、后序)和广度优先遍历(层次)。分享给大家供大家参考,具体如下:前言:深度优先遍历:对
- 1. SeriesSeries 是一个类数组的数据结构,同时带有标签(lable)或者说索引(index)。1.1 下边生成一个最简单的Se