argparse库如何判断两个参数必须有其中一个,但不能两个都有,用逗号或空格分隔
时间: 2024-03-07 11:46:52 浏览: 126
如何取得一个表的所有字段名用逗号分割
可以通过 `mutually_exclusive_group` 方法来实现这个功能。
示例代码:
```python
import argparse
parser = argparse.ArgumentParser()
group = parser.add_mutually_exclusive_group(required=True)
group.add_argument('--arg1', help='Argument 1')
group.add_argument('--arg2', help='Argument 2')
args = parser.parse_args()
if args.arg1 and args.arg2:
print('Error: --arg1 and --arg2 are mutually exclusive')
else:
if args.arg1:
arg_list = args.arg1.split(',')
else:
arg_list = args.arg2.split(',')
print(arg_list)
```
在上面的代码中,我们首先创建了一个 `ArgumentParser` 对象 `parser`,然后创建了一个互斥组 `group`,并将 `--arg1` 和 `--arg2` 参数添加到这个互斥组中。注意,我们将 `required` 参数设置为 `True`,表示在这个互斥组中必须选择一个参数。
然后,我们使用 `parse_args()` 方法来解析命令行参数,并检查 `args.arg1` 和 `args.arg2` 是否同时存在。如果同时存在,就说明用户错误地使用了这两个参数。否则,我们根据用户提供的参数列表创建一个列表 `arg_list`。
最后,我们打印出 `arg_list`,以验证代码是否正确处理了用户提供的参数。
阅读全文