argparse用法总结

这个教程是对argparse的用法总结,argparse是用于处理命令行参数的利器,这里介绍其常见的使用方法。

简单的使用

# test.py
import argparse

parser = argparse.ArgumentParser() # 创建解析器
parser.add_argument('--name', type=str) # 添加需要解析的参数name,类型为str
config = parser.parse_args() # 解析,其返回值可作为字典使用
print(config.name) # 输出解析结果

在bash中输入:python test.py --name fyy,即指定了name的值为fyy。如果没有指定name的具体值,这默认为None。

add_argument介绍

添加各种类型的参数

add_argument函数是使用的核心,通过指定不同的参数,可以完成不同的效果,下面来按顺序介绍。

# 指定不同的类型基础类型
parser.add_argument('--t_int', type=int)
parser.add_argument('--t_float', type=float)
parser.add_argument('--t_str', type=str)

使用时在控制台输入:python test.py --t_int 1 --t_float 2.0 --t_str nihao

# 指定bool类型时需要特别注意,不能直接指定type为bool,这样所有的输出都是True
parser.add_argument('--t_bool', type=bool)  # 错误
parser.add_argument('--t_ture', action='store_true')
parser.add_argument('--t_false', action='store_false')

输入python test.py --t_ture为True,而当输入python test.py时为False
输入python test.py --t_false为False,而当输入python test.py时为True

# 指定多个参数
parser.add_argument('--values', nargs='+', type=int) 

输入时用空格分隔:python test.py --values 1 2 3

指定默认值

每次运行程序都得指定这么多变量稍显繁琐,可以在添加参数时指定一个默认值,当未指定该变量时,即使用该默认值,推荐使用。

# 指定默认值
parser.add_argument('--name', type=str, default='fyy')
parser.add_argument('--nums', type=int, nargs='+', default=[1, 2, 3])

指定帮助信息

作用类似于注释。但相较于注释,其好处是不需要阅读原码也能知道其作用,只需要在终端输入:python tesst.py -h就能查看到help的信息,推荐使用。

# 指定帮助信息
parser.add_argument('--name', type=str, default='fyy', help='使用者姓名')

指定参数范围

为了增强程序的鲁棒性,可以限制传递参数的取值范围,特别适合用于限制有限的选择,例如损失函数。

# loss的值只能未L1, L2, CE中的一个
parser.add_argument('--loss', type=str, default='L1', choices=['L1', 'L2', 'CE'])
# 配合list
parser.add_argument('--loss', type=str, default=['L1'], choices=['L1', 'L2', 'CE'], nargs='+')

命令缩写

对于某些场景的选项,每次都输入完整的名称稍显繁琐,可以给其指定缩写,在输入命令时可以用缩写,但是访问解析的字典时,还是要用全称。

# 注意缩写是一个-
parser.add_argument('-n', '--name', type=str)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值