当前位置:首页 > 站长资讯 > 正文内容

【说站】Python argparse库的基本使用步骤

yc8882年前 (2022-07-23)站长资讯202

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)


本站发布的内容若侵犯到您的权益,请邮件联系站长删除,我们将及时处理!


从您进入本站开始,已表示您已同意接受本站【免责声明】中的一切条款!


本站大部分下载资源收集于网络,不保证其完整性以及安全性,请下载后自行研究。


本站资源仅供学习和交流使用,版权归原作者所有,请勿商业运营、违法使用和传播!请在下载后24小时之内自觉删除。


若作商业用途,请购买正版,由于未及时购买和付费发生的侵权行为,使用者自行承担,概与本站无关。


本文链接:https://www.10zhan.com/zhanzhang/7409.html

标签: Python
分享给朋友:

“【说站】Python argparse库的基本使用步骤” 的相关文章

【说站】宝塔站点日志文件过大怎么办?网站日志切割教程

【说站】宝塔站点日志文件过大怎么办?网站日志切割教程

宝塔面板日志文件过大的原因?宝塔面板的网站日志文件默认是生成一个日志文件,然后系统每天不断的对这个文件进行写入操作,这样日子长了,这个日志文件就会越来越大,几百兆、几个G都是蛮正常的,这样对于我们分析...

【说站】Excel如何快速删除空行?WPS删除excel空白行

【说站】Excel如何快速删除空行?WPS删除excel空白行

站长我经常会处理excel文档,之前介绍过Microsoft Office excel文档删除空行的办法,今天介绍WPS Office下面的excel如何删除空白行。方法一:筛选  选中数据所在的那一...

【说站】宝塔如何按日期每天生成一个网站日志文件

【说站】宝塔如何按日期每天生成一个网站日志文件

宝塔面板默认的会按照nginx.conf的配置生成在/www/wwwlogs目录下面生成一个网站访问日志和一个网站错误日志,每当有新的记录时系统会不断的对这两个文件进行写入操作,但随着访问量的增长,日...

【说站】WordPress网站文章ID不连续如何解决?

【说站】WordPress网站文章ID不连续如何解决?

对于WordPress网站文章ID不连续的问题困扰了我很久,今天将WordPress文章ID不连续的原因和具体解决办法做详细的说明。WordPress文章ID不连续的原因:用WordPress做网站的...

【说站】360右下角弹窗广告如何关闭?360浏览器游戏广告关闭方法

【说站】360右下角弹窗广告如何关闭?360浏览器游戏广告关闭方法

最简单的方法就是换成360极速版!如果不愿意换的话则如下:360的广告弹窗特别烦人,电脑开机总是弹出360安全卫士的开机助手新闻弹窗窗口怎么办?电脑运行过程中不定时的弹出360新闻弹窗窗口如何解决?怎...

【说站】宝塔面板上行下行 总发送 总接收是什么意思

【说站】宝塔面板上行下行 总发送 总接收是什么意思

下图是宝塔面板后台云服务器的上行速度、下行速度、总发送、总接收流量图,橘红色代表的是上行速度曲线,蓝色代表的是下行速度曲线,鼠标移动到一个时间点,会显示上行和下行的网速,右上角“全部”可以选择网卡。网...