`argparse` 是 Python 标准库中用于解析命令行参数和选项的模块。它可以让你的 Python 脚本更加灵活,可以从命令行中接收参数和选项,并且可以根据用户提供的参数来执行不同的操作。下面是一些使用 `argparse` 的笔记:
### 基本示例
```python
import argparse
parser = argparse.ArgumentParser(description='命令行参数解析示例')
parser.add_argument('--url', type=str, help='需要处理的URL')
parser.add_argument('--file', type=str, help='需要处理的文件路径')
args = parser.parse_args()
if args.url:
print('处理URL:', args.url)
elif args.file:
print('处理文件:', args.file)
else:
print('请提供URL或文件路径')
```
在上面的例子中,我们使用 `argparse` 创建了一个解析器对象,然后添加了两个参数 `--url` 和 `--file`。`type` 参数指定了参数的类型,`help` 参数指定了参数的帮助信息。最后,使用 `parse_args()` 方法解析命令行参数,并根据参数执行不同的操作。
### 必需参数
```python
import argparse
parser = argparse.ArgumentParser(description='命令行参数解析示例')
parser.add_argument('input', type=str, help='输入文件路径')
parser.add_argument('output', type=str, help='输出文件路径')
args = parser.parse_args()
print('输入文件:', args.input)
print('输出文件:', args.output)
```
在上面的例子中,我们将参数 `input` 和 `output` 指定为必需参数,这意味着用户必须在命令行中提供这两个参数,否则程序将会抛出异常。
### 默认值
```python
import argparse
parser = argparse.ArgumentParser(description='命令行参数解析示例')
parser.add_argument('--url', type=str, help='需要处理的URL', default='https://www.baidu.com')
parser.add_argument('--file', type=str, help='需要处理的文件路径', default='data.txt')
args = parser.parse_args()
print('处理URL:', args.url)
print('处理文件:', args.file)
```
在上面的例子中,我们为参数 `--url` 和 `--file` 指定了默认值,这意味着如果用户没有在命令行中提供这两个参数,那么程序将使用默认值。默认值可以是任何类型的值,不仅仅限于字符串类型。
### 多个值
```python
import argparse
parser = argparse.ArgumentParser(description='命令行参数解析示例')
parser.add_argument('--input', type=str, help='输入文件路径', nargs='+')
parser.add_argument('--output', type=str, help='输出文件路径')
args = parser.parse_args()
print('输入文件:', args.input)
print('输出文件:', args.output)
```
在上面的例子中,我们将参数 `--input` 指定为多个值,这意味着用户可以在命令行中提供多个输入文件路径,例如 `--input file1.txt file2.txt`。使用 `nargs='+'` 将参数指定为多个值,使用 `args.input` 来访问这些值。
### 限制值的范围
```python
import argparse
parser = argparse.ArgumentParser(description='命令行参数解析示例')
parser.add_argument('--size', type=int, help='图像大小', choices=[256, 512, 1024])
args = parser.parse_args()
print('图像大小:', args.size)
```
在上面的例子中,我们将参数 `--size` 指定为整数类型,并且限制了它的取值范围只能是 256、512 或 1024。如果用户在命令行中指定了一个不在这个范围内的值,程序将会抛出异常。
### 子命令
```python
import argparse
parser = argparse.ArgumentParser(description='命令行参数解析示例')
subparsers = parser.add_subparsers(title='子命令', description='可用的子命令')
parser_a = subparsers.add_parser('a', help='子命令A')
parser_a.add_argument('--input', type=str, help='输入文件路径')
parser_a.add_argument('--output', type=str, help='输出文件路径')
parser_b = subparsers.add_parser('b', help='子命令B')
parser_b.add_argument('--url', type=str, help='需要处理的URL')
args = parser.parse_args()
if hasattr(args, 'input'):
print('处理文件:', args.input)
print('输出文件:', args.output)
elif hasattr(args, 'url'):
print('处理URL:', args.url)
else:
print('请提供子命令参数')
```
在上面的例子中,我们使用 `add_subparsers()` 方法创建了子命令解析器对象,并添加了两个子命令 `a` 和 `b`。然后,我们为每个子命令添加了不同的参数。最后,根据子命令参数执行不同的操作。
以上就是一些 `argparse` 的基本使用笔记,希望对你有帮助。