argparse - 命令行解析库

argparse - 命令行解析库
argparse是一个受optparse启发的命令行解析库,功能:

1. 处理可选参数和位置参数
2. 生成 usage messages
3. 支持派生出sub-parsers
1
2
3
argparse包含以下public classes

1. ArgumentParser
命令行解析的主要入口点。如上例所示,使用add_argument()方法为解析器填充可选参数和位置参数的动作。然后调用parse_args()方法将命令行中的参数转换为具有属性的对象。
1
2
其他类这里就不介绍了,具体可查看argparse说明文档

import argparse
parser = argparse.ArgumentParser(description='PyTorch MNIST Example')
parser.add_argument('--batch-size', type=int, default=128, metavar='N',
                    help='input batch size for training (default: 64)')  # 往parser中填充参数
args = parser.parse_args()
1
2
3
4
5
add_argument可添加的参数类型: 
1. positional arguments 
positional arguments为英文定义,可翻译为定位参数,用法是不用带-就可用 
比如,代码prog.py内容如下:
parser.add_argument("echo") # 默认必选
args = parser.parse_args()
print args.echo
1
2
3
执行 python prog.py hahahaha 
输出:hahahaha

2. optional arguments 
中文名叫可选参数,有两种方式: 
方式一、通过一个-来指定的短参数,如-h 
方式二、通过–来指定的长参数,如- -help

add_argument()中的可选参数: 
‘–batch-size’或’-b’:长参数或者短参数 
type:参数的类型 
default:参数默认值 
help=”帮助信息”:执行python prog.py -h,会在参数的后面打印出该信息 
choices: 这个参数用来检查输入参数的范围。如:choices=[1,3,5] 
nargs: 当选项后接受多个或者0个参数时需要这个来指定。比如-u选项接受2个参数,python prog.py -u 1 2 
一个变量接受多个参数,实际上得到的是一个list,这个时候传入的default值也应该是一个list。 
比如:
parser.add_argument('-b', type=int, default=[7,8,9], metavar='n', nargs=3)
args = parser.parse_args()
print(args.b)
1
2
3
执行:python args.py -b 1 2 3 
输出结果 
[1,2,3] 
metavar:这个参数用于help 信息输出中,比如 python prog.py -h,会打印出:–batch-size N

参数解析的另一种方式:使用sys.argv参数
import sys
if len(sys.argv) != 4:
    print('Usage:')
    print('python train.py datacfg cfgfile weightfile')
    exit()
# sys.argv[0]为python脚本名
datacfg       = sys.argv[1]
cfgfile       = sys.argv[2]
weightfile    = sys.argv[3]
--------------------- 
作者:tsq292978891 
来源:CSDN 
原文:https://blog.csdn.net/tsq292978891/article/details/79456193 
版权声明:本文为博主原创文章,转载请附上博文链接!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值