argparse.ArgumentParser 命令行接口


核心参考

argparse.ArgumentParser

举个例子

例程如下

import argparse

parser = argparse.ArgumentParser(description='this is a test program.')
parser.add_argument('integers', metavar='N', type=int, nargs='+',
                    help='an integer for the accumulator')
parser.add_argument('--sum', dest='accumulate', action='store_const',
                    const=sum, default=max,
                    help='sum the integers (default: find the max)')

args = parser.parse_args()
print(args.accumulate(args.integers))

假设上面的 Python 代码保存在名为 prog.py 的文件中,它可以在命令行运行并提供有用的帮助消息:

$ python prog.py -h
usage: prog.py [-h] [--sum] N [N ...]

this is a test program.

positional arguments:
 N           an integer for the accumulator

optional arguments:
 -h, --help  show this help message and exit
 --sum       sum the integers (default: find the max)

当使用适当的参数运行时,它会输出命令行传入整数的总和或者最大值:

$ python prog.py 1 2 3 4
4

$ python prog.py 1 2 3 4 --sum
10

如果传入无效参数,则会报出错误:

$ python prog.py a b c
usage: prog.py [-h] [--sum] N [N ...]
prog.py: error: argument N: invalid int value: 'a'

函数配置

位置参数

即必须进行输入的某些变量,前面不带着-或者--

parser.add_argument("square", help="display a square of a given number",type = int)

可选参数

即可输入可不输入的一些argument,前面带着-或者--。一个可选参数没有被选用,会被赋值为None

parser.add_argument("-v","--verbosity", help="increase output verbosity",type = str,action = "store_true",dest='accumulate')
  1. -为短选项
  2. 动作action的相关参数
  • store_true说明在这个参数被激活时verbosity将会被置为true
  • count用来数可选参数出现了几次,比如-vvv-vv
  1. 如果提供dest,例如dest="accumulate",那么可以通过args.accumulate访问该参数

矛盾的选项

[-v|-q]说明-v-q不能同时出现但是可以使用其中一个

posted @ 2021-04-23 18:34  小康要好好学习  阅读(136)  评论(0编辑  收藏  举报