ArgumentParser

示例代码

  1. from argparse import ArgumentParser
  2. def get_args():
  3. parser = ArgumentParser(description="Demo of argparse")
  4. parser.add_argument("-r", "--require-arg", required=True,
  5. help="required arg for script running")
  6. parser.add_argument("-s", "--switch", action="store_true",
  7. help="switch flag")
  8. parser.add_argument('-f',"--input-file",nargs='+',
  9. help="input one or multiple files")
  10. parser.add_argument("-l", "--log-level", metavar="LEVEL", default="info",
  11. help="LEVEL: [debug|info|warn|error|critical] (default: info)")
  12. return parser.parse_args()
  13. args = get_args()
  14. print(args.__dict__)

metavar: help 时候参数值的描述
default:没有设置值情况下的默认参数
required: 表示这个参数是否一定需要设置
type: 参数类型
默认的参数类型是str类型,如果你的程序需要一个整数或者布尔型参数,你需要设置type=int或type=bool

  1. parser.add_argument('-number', type=int)

choices:参数值只能从几个选项里面选择

  1. parser.add_argument('-arch', required=True, choices=['alexnet', 'vgg'])

help:指定参数的说明信息

  1. parser.add_argument('-arch', required=True, choices=['alexnet', 'vgg'],
  2. help='the architecture of CNN, at this time we only support alexnet and vgg.')

dest:设置参数在代码中的变量名
argparse默认的变量名是—或-后面的字符串,但是你也可以通过dest=xxx来设置参数的变量名,然后在代码中用args.xxx来获取参数的值。
nargs: 设置参数在使用可以提供的个数

  1. parser.add_argument('-name', required=True, nargs='+')
含义
N (int) 参数的绝对个数(例如:3)
‘?’ 0或1个参数
  1. 含义
  2. N 参数的绝对个数(例如:3
  3. '?' 01个参数
  4. '*' 0或所有参数,参数封装在一个 list 里面
  5. '+' 所有,并且至少一个参数
  1. python nargs.py -name A B C
  2. Hello to A, B, C

Click