argparse 添加可选参数
时间: 2023-10-15 16:17:11 浏览: 42
在使用 argparse 添加可选参数时,需要使用 add_argument() 方法来定义参数。这个方法有多个参数,其中最重要的有两个:参数名和参数选项。
参数名是用来标识这个参数的,可以是一个字符串或者一个列表,如果是一个列表,则第一个元素为短参数名,第二个元素为长参数名。
参数选项用来指定这个参数的类型、默认值、描述文本等信息,可以通过调用 add_argument() 方法的一系列参数来指定。例如:
```python
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--name', default='World', help='Your name')
args = parser.parse_args()
print('Hello, {}!'.format(args.name))
```
在这个例子中,我们定义了一个名为 --name 的可选参数,它的默认值为 'World',描述文本为 'Your name'。当用户在命令行中输入 --name=xxx 时,程序会将 xxx 作为参数值传递给我们的脚本。如果用户没有输入 --name,程序会使用默认值 'World'。
我们可以使用以下命令来运行这个脚本:
```bash
python script.py --name=John
```
输出结果:
```
Hello, John!
```
相关问题
python中可变参数argparse
argparse是Python标准库中的一个模块,用于解析命令行参数。它可以帮助我们定义程序所需的参数,并从sys.argv中解析这些参数。argparse还可以自动生成帮助和使用消息,并在用户为程序提供无效参数时发出错误。在深度学习代码中,特别是在train.py或test.py中,argparse最常被使用。因为在这些文件中,通常要对其他.py文件中定义的class或function进行调用,因此必然要传入大量的参数,如果不对这些参数进行集中编写,那么在冗长的代码中去找参数的定义位置或传参的位置将会十分麻烦。argparse为用户提供了集中编写所需参数的机会。在Python中,argparse的可变参数可以通过add_argument()方法来添加。例如,我们可以使用add_argument()方法来添加一个可选参数,或者一个位置参数。可选参数可以通过"--"来指定,而位置参数则是按照参数的顺序来指定。同时,我们还可以使用dest属性来指定参数的名称,以便在程序中使用。
argparse.ArgumentParser() 指定参数可选范围
可以使用 `add_argument()` 方法来指定参数的可选范围。其中,`choices` 参数可以用来指定可选的值列表。
示例代码:
```python
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--mode', choices=['train', 'test'], help='mode: train or test')
args = parser.parse_args()
if args.mode == 'train':
print('Training...')
elif args.mode == 'test':
print('Testing...')
else:
print('Please specify a valid mode: train or test')
```
在这个示例中,我们使用 `add_argument()` 方法来添加一个 `--mode` 参数,并用 `choices` 参数指定可选值列表为 `['train', 'test']`。在脚本运行时,如果用户输入的 `--mode` 参数值不在可选值列表中,则会输出提示信息。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)