argparse.ArgumentParser 命令行接口
目录
核心参考
- 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')
-
为短选项- 动作action的相关参数
store_true
说明在这个参数被激活时verbosity
将会被置为true
count
用来数可选参数出现了几次,比如-vvv
、-vv
- 如果提供
dest
,例如dest="accumulate"
,那么可以通过args.accumulate
访问该参数
矛盾的选项
[-v|-q]
说明-v
和-q
不能同时出现但是可以使用其中一个