Skip to main content
 首页 » 编程设计

python之需要使用 argparse 的 python 命令行参数的帮助

2025年05月04日15jillzhang

我需要一些关于使用 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 对象(传递的标志将设置为 正确).