argparser choice
时间: 2023-09-12 12:03:07 浏览: 137
`argparser`中的`choices`参数用于限制参数的可选值。它接受一个列表或元组作为参数,其中包含允许的值。例如:
```python
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--mode", choices=["train", "evaluate", "predict"])
args = parser.parse_args()
```
在这个例子中,`--mode`参数只能被设置为"train"、"evaluate"或"predict"中的一个。如果用户提供了一个不在这个列表中的值,`argparser`会抛出一个错误并显示可选值。这个参数在确保程序正常运行以及用户输入正确的值时非常有用。
相关问题
python argparser
argparse是一个Python模块,用于解析命令行选项、参数和子命令。它可以帮助我们轻松编写用户友好的命令行接口。通过定义程序需要的参数,argparse可以解析sys.argv中的参数,并自动生成帮助和使用手册,当用户传入无效参数时,还可以报错提示。
在argparse中,我们可以使用ArgumentParser类创建解析器对象。然后,我们可以使用add_argument()方法添加参数。例如,我们可以使用"--layer_1_dim"作为参数名,指定参数类型为整数,设置默认值为128。最后,我们使用parse_args()方法来解析参数。
下面是一个基础用法的例子:
```
from argparse import ArgumentParser
# 创建解析器对象
parser = ArgumentParser()
# 添加参数
parser.add_argument("--layer_1_dim", type=int, default=128)
# 解析参数
args = parser.parse_args()
# 通过命令行调用程序
# python trainer.py --layer_1_dim 64
```
此外,argparse还支持更高级的用法,例如将参数分为程序参数和模型参数,以及添加特定于模型的参数。可以通过调用add_argument()方法来添加程序级参数和模型级参数,并使用add_model_specific_args()方法来添加特定于模型的参数。最后,可以使用add_argparse_args()方法将所有可用的trainer选项添加到argparse。
argparser使用
argparse是一个Python模块,用于解析命令行选项、参数和子命令。它使得编写用户友好的命令行接口变得简单。使用argparse,程序可以定义它需要的参数,并从sys.argv解析这些参数。argparse还可以自动生成帮助和用法信息,并在用户传入无效参数时报错。
argparse的基础用法如下:
1. 导入argparse模块:`from argparse import ArgumentParser`
2. 创建解析器对象:`parser = ArgumentParser()`
3. 添加参数:使用`add_argument()`方法来添加参数,参数包括选项名、类型、默认值等。
4. 解析参数:使用`parse_args()`方法来解析参数。
下面是一个示例代码:
```python
from argparse import ArgumentParser
parser = ArgumentParser()
parser.add_argument("--layer_1_dim", type=int, default=128)
args = parser.parse_args()
```
在命令行中调用程序时,可以使用`--layer_1_dim`选项来指定参数的值,例如:
```
python trainer.py --layer_1_dim 64
```
另外,在主Trainer文件中,可以添加Trainer参数、程序参数和模型参数。示例代码如下:
```python
from argparse import ArgumentParser
parser = ArgumentParser()
parser.add_argument("--conda_env", type=str, default="some_name")
parser.add_argument("--notification_email", type=str, default="will@email.com")
# 添加特定于模型的参数
parser = LitModel.add_model_specific_args(parser)
# 将所有可用的trainer选项添加到argparse
parser = Trainer.add_argparse_args(parser)
args = parser.parse_args()
```
阅读全文