我需要一些关于使用 argparse 的帮助。我想要实现的是我只需要传入一个参数,它可以是以下之一:--k, --r, --b, --p,(忽略其余部分)。如果参数计数不为 1,则打印“使用情况”信息并退出。程序还需要知道传入的是哪个标志,以便创建相应的对象。我尝试了几次,但我没有用,任何人都可以给我一个提示吗?谢谢。
请您参考如下方法:
您需要使用一个 mutually exclusive group 来完成它:
import argparse
parser = argparse.ArgumentParser()
group = parser.add_mutually_exclusive_group()
group.add_argument('-k', action='store_true')
group.add_argument('-r', action='store_true')
group.add_argument('-b', action='store_true')
group.add_argument('-p', action='store_true')
parser.parse_args()
如下例所示,互斥组中同时只允许有一个选项:
$ python test.py -k -r -b -p
usage: test.py [-h] [-k | -r | -b | -p]
test.py: error: argument -r: not allowed with argument -k
要检查传递了哪个标志,您只需要查看 parse_args 方法返回的 argparse.Namespace 对象(传递的标志将设置为 正确).
