argparse

argparse 是 Python 内置的一个用于命令项选项与参数解析的模块,通过在程序中定义好我们需要的参数,argparse 将会从 sys.argv 中解析出这些参数,并自动生成帮助和使用信息。当然,Python 也有第三方的库可用于命令行解析,而且功能也更加强大,比如 docopt,Click。

- 创建 ArgumentParser() 对象
- 调用 add_argument() 方法添加参数
- 使用 parse_args() 解析添加的参数

# -*- coding: utf-8 -*-
"""
Created on Mon Feb 26 08:29:29 2018

@author: brucelau
"""

import argparse

parser = argparse.ArgumentParser('Setting Model Parameters')
parser.add_argument('--MODEL', type=str,default='SIMPLE', help='Choose a MODEL from SIMPLE/COMPLEX/REED_HARD/REED_SOFT')
parser.add_argument('--NOISE_LEVEL',default='0.46',type=float,help='Set the NOISE_LEVEL from 0.1 to 0.5')
parser.add_argument('--seed',default=42,type=int,help='Set the random seed')

args = parser.parse_args()
print(args.MODEL)
print(args.NOISE_LEVEL)
print(args.seed)

在命令行中输入,进而修改参数:

python test.py --MODEL 'COMPLEX' --NOISE_LEVEL 0.5 --seed 45

在Jupyter等交互模式中使用argparse时

  • 使用args, unknown = parser.parse_known_args()
  • 取代args = parser.parse_args();
  • 后者仅适用于命令行模式,交互模式中无法识别。