【基础】argparse库的命令行参数处理
发布时间: 2024-06-27 15:41:52 阅读量: 77 订阅数: 106
![python自动化运维合集](https://img-blog.csdnimg.cn/img_convert/9dce4c2c001c20969f075c4187d21b93.png)
# 2.1 位置参数和可选参数
位置参数是按照其在命令行中出现的顺序解析的。它们不需要指定任何标志或名称,而只需按照其在命令行中出现的顺序提供即可。
可选参数是使用标志或名称指定的,可以以任何顺序出现在命令行中。它们通常用于提供附加信息或修改命令的行为。
例如,以下命令使用位置参数指定文件路径和可选参数 `-v` 指定详细输出:
```
python script.py input.txt -v
```
在这个例子中,`input.txt` 是位置参数,而 `-v` 是可选参数。
# 2. argparse库的基本使用
### 2.1 位置参数和可选参数
位置参数是按照命令行中参数出现的顺序进行解析的,而可选参数则可以通过指定参数名称和值的方式进行解析。
**位置参数示例:**
```python
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("first_name")
parser.add_argument("last_name")
args = parser.parse_args()
print(args.first_name)
print(args.last_name)
```
**执行结果:**
```
$ python script.py John Doe
John
Doe
```
**可选参数示例:**
```python
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("-v", "--verbose", action="store_true", help="enable verbose mode")
args = parser.parse_args()
if args.verbose:
print("Verbose mode is enabled.")
```
**执行结果:**
```
$ python script.py
$ python script.py -v
Verbose mode is enabled.
```
### 2.2 命名参数和可选参数
命名参数是通过指定参数名称和值的方式进行解析的,而可选参数则可以通过指定参数名称和默认值的方式进行解析。
**命名参数示例:**
```python
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--name", help="specify the name")
args = parser.parse_args()
print(args.name)
```
**执行结果:**
```
$ python script.py --name John
John
```
**可选参数示例:**
```python
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--age", type=int, default=18, help="specify the age")
args = parser.parse_args()
print(args.age)
```
**执行结果:**
```
$ python script.py
18
$ python script.py --age 25
25
```
### 2.3 参数的类型转换和默认值
argparse库支持多种参数类型转换,例如整数、浮点数、布尔值和枚举值。默认值可以通过`default`参数指定。
**类型转换示例:**
```python
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--number", type=int, help="specify the number")
args = parser.parse_args()
print(type(args.number))
```
**执行结果:**
```
$ python script.py --number 123
<class 'int'>
```
**默认值示例:**
```python
import argparse
parser = argparse.ArgumentParser()
parser.add_
```
0
0