python进行参数解析及argparse.ArgumentParser()的使用

argparse - 命令行解析库

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

1. 处理可选参数和位置参数
2. 生成 usage messages
3. 支持派生出sub-parsers

argparse包含以下public classes

1. ArgumentParser
命令行解析的主要入口点。如上例所示,使用add_argument()方法为解析器填充可选参数和位置参数的动作。然后调用parse_args()方法将命令行中的参数转换为具有属性的对象。

其他类这里就不介绍了,具体可查看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()
  • add_argument可添加的参数类型:
    1. positional arguments
    positional arguments为英文定义,可翻译为定位参数,用法是不用带-就可用
    比如,代码prog.py内容如下:
parser.add_argument("echo") # 默认必选
args = parser.parse_args()
print args.echo

执行 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)

执行: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]

你可能感兴趣的:(Python学习)