在Python开发中,命令行参数的解析是一个很基本的需求。Python自带的optparse模块可以帮助我们实现命令行参数的解析。本文将深入浅出地介绍optparse模块的使用方法。
optparse模块的安装
optparse模块是Python自带的,因此不需要安装。
optparse模块的使用方法
1. 基本用法
使用optparse模块,我们需要先导入它:
```python
from optparse import OptionParser
```
然后,我们可以创建一个OptionParser对象:
```python
parser = OptionParser()
```
接下来,我们可以通过add_option()方法来添加命令行参数:
```python
parser.add_option("-f", "--file", dest="filename", help="input file name")
```
上面的代码中,-f和--file都是选项名,dest是选项解析后对应的变量名,help是选项的帮助信息。
最后,我们可以使用parse_args()方法来解析命令行参数:
```python
(options, args) = parser.parse_args()
```
该方法会返回一个元组,其中options是一个对象,包含了解析后的选项和它们的值;args是一个列表,包含了解析后的位置参数。
2. 高级用法
除了基本用法外,optparse模块还提供了一些高级用法。
2.1 选项值类型
除了默认的字符串类型,optparse模块还支持其他类型的选项值,例如整数、浮点数、布尔值等。
我们可以通过使用type参数来指定选项值的类型:
```python
parser.add_option("-n", "--num", dest="num", type="int", help="input an integer")
parser.add_option("-f", "--float", dest="float", type="float", help="input a float number")
parser.add_option("-b", "--bool", dest="bool", action="store_true", help="input a bool value")
```
在上面的代码中,type参数指定了选项值的类型,action参数指定了选项的行为。
2.2 默认选项值
我们可以通过使用default参数来指定选项的默认值:
```python
parser.add_option("-n", "--num", dest="num", type="int", default=0, help="input an integer")
```
在上面的代码中,default参数指定了选项的默认值为0。
2.3 必选选项
我们可以通过使用required参数来指定必选选项:
```python
parser.add_option("-n", "--num", dest="num", type="int", required=True, help="input an integer")
```
在上面的代码中,required参数指定了选项为必选选项。
2.4 多选选项
我们可以通过使用action参数来指定多选选项:
```python
parser.add_option("-i", "--input", dest="inputs", action="append", help="input files")
```
在上面的代码中,action参数指定了选项为多选选项。
2.5 自定义选项值解析
我们可以通过使用callback参数来定义自己的选项值解析函数:
```python
def parse_version(option, opt_str, value, parser):
print("version: 1.0")
parser.add_option("-v", "--version", dest="version", action="callback", callback=parse_version, help="show version information")
```
在上面的代码中,callback参数指定了选项值解析函数为parse_version()函数。
optparse模块的优缺点
optparse模块的优点是使用简单,功能完备,而且Python自带,不需要额外安装。
但是,optparse模块在Python 2.7版本中被标记为“deprecated”,在Python 3.2版本中被移除,推荐使用argparse模块来代替它。