我想要一个带有开关--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()
答案 0 :(得分:3)
只需使用required
参数:
parser.add_argument('--switch', metavar='switch', type=str, required=True)
引用文档:
通常,argparse模块假定像
的-f
和--bar
这样的标志表示可选参数,在命令行中总是可以省略。要进行必要选项,可以为True
required=
关键字参数指定add_argument()
[...]
注意:必填选项通常被视为不良格式,因为用户希望选项是可选,因此应尽可能避免使用它们。