argparser 如何检查两个可选参数,如果给定其中一个,则另外一个也必须要提供
时间: 2024-12-18 16:23:24 浏览: 9
`argparse` 是 Python 的标准库之一,用于处理命令行参数。如果你想确保在给定一个可选参数的同时另一个也被提供,你可以使用 `argparse` 提供的一些特性来实现条件检查。
首先,在创建 `ArgumentParser` 对象时,可以定义一个 `mutually_exclusive_group`。这个组里的参数互斥,即用户只能选择其中的一个:
```python
import argparse
parser = argparse.ArgumentParser()
group = parser.add_mutually_exclusive_group(required=True)
group.add_argument('--option1', help='Option 1 description')
group.add_argument('--option2', help='Option 2 description')
```
这里我们设置了一个组,并将两个选项设为必填(`required=True`),意味着至少需要提供一个。
然后,你可以在 `if __name__ == '__main__':` 下面检查实际提供的参数:
```python
args = parser.parse_args()
if args.option1 is not None and args.option2 is not None:
print("Both options are provided. Please choose one.")
parser.print_help() # 显示帮助信息并退出
elif args.option1 is not None:
# Process option1...
elif args.option2 is not None:
# Process option2...
else:
parser.error("Exactly one of '--option1' or '--option2' must be provided.")
```
在 `__name__ == '__main__':` 之外,你可以按需处理相应的参数。
阅读全文