Python3中带开关的强制参数

时间:2015-11-30 16:27:17

标签: python-3.x argparse

我想要一个带有开关--switch的强制(必须)参数。 但是argparse--解释为可选参数,并且不检查它们的存在。

有没有办法解决这个问题?

#!/usr/bin/env python3    
import sys
import argparse

parser = argparse.ArgumentParser(description=__file__)

# must have
parser.add_argument('--switch', metavar='switch', type=str)

sys.exit()

1 个答案:

答案 0 :(得分:3)

只需使用required参数:

parser.add_argument('--switch', metavar='switch', type=str, required=True)

引用文档:

  

通常,argparse模块假定像-f--bar这样的标志表示可选参数,在命令行中总是可以省略。要进行必要选项,可以为True

required=关键字参数指定add_argument()      

[...]

     

注意:必填选项通常被视为不良格式,因为用户希望选项可选,因此应尽可能避免使用它们。