argparse模块的add_argument函数,有一个choices参数,我们可以通过此参数来给命令行参数的取值设置一个任意的范围。在命令行参数取值范围小而且有限的情况下,此方法还是很方便的。
下面的代码,给参数设置了一个取值范围:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--cc', choices=['1','2','3'])
args = parser.parse_args()
--cc这个命令行参数的取值范围是'1','2'和'3',没有别的。
E:\py>python arg.py --h
usage: arg.py [-h] [--cc {1,2,3}]
optional arguments:
-h, --help show this help message and exit
--cc {1,2,3}
E:\py>python arg.py --cc 1
E:\py>python arg.py --cc 2
E:\py>python arg.py --cc 3
E:\py>python arg.py --cc 4
usage: arg.py [-h] [--cc {1,2,3}]
arg.py: error: argument --cc: invalid choice: '4' (choose from '1', '2', '3')
默认的参数值类型,都是字符串!
choices内的元素类型,要跟type保持一致,下面的代码,命令行参数的取值范围就是int类型:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--cc', type=int, choices=[1,2,3])
args = parser.parse_args()
choices的值是一个集合,上面的示例都是list,还可以是tuple或set。
-- EOF --