例一 位置参数
#!/usr/bin/env python3
import argparse
parser = argparse.ArgumentParser() #生成一个解析器
parser.add_argument("pos", #没有-开始的是“位置参数”
help="输入浮点数", #对这个参数的提示信息
type=float) #这个参数会解析为float
#Common built-in types and functions can be used directly as the value of the type argument type=len
args = parser.parse_args() #解析参数
print(args.pos)
例二 action
>>> parser.add_argument('--foo', action='store_const', const=42) # 设置foo为常量42
>>> parser.add_argument('--foo', action='store_true',default=false) # 设置bar为true,默认为false
>>> parser.add_argument('--bar', action='store_false') # 设置bar为false
>>> parser.add_argument('--foo', action='append') #arg.py --foo 1 --foo 2 foo为[1,2]
例三 nargs
parser.add_argument('--foo', nargs=2) #arg.py --foo 1 2 foo为['1', '2']
parser.add_argument('foo', nargs=2) #arg.py 1 2 foo为['1', '2']
parser.add_argument('foo', nargs='?') #arg.py 1 2 foo为['1', '2'] 如果没有参数,结果是None,多于1个提示错误
parser.add_argument('foo', nargs='+') #arg.py 1 2 foo为['1', '2'] 如果没有参数,提示错误
parser.add_argument('foo', nargs='*') #arg.py 1 2 foo为['1', '2'] 如果没有参数,结果是[ ]
parser.add_argument('foo', nargs=argparse.REMAINDER) #arg.py 1 2 foo为['1', '2'] 把剩余的放到foo列表里
nargs 的值可以为:
- N (an integer). N arguments from the command line will be gathered together into a list.
- '?'. One argument will be consumed from the command line if possible, and produced as a single item.
- '*'. All command-line arguments present are gathered into a list.
- '+'. Just like '*', all command-line args present are gathered into a list.
- argparse.REMAINDER. All the remaining command-line arguments are gathered into a list.
例四 choices
>>> parser.add_argument('door', type=int, choices=range(1, 4)) #door只能是123