简介
optparse里面包含了几个主要类别:
OptionParser解析类、 Option定义类、 Values解析结果类
OptionParse是入口,实例化OptionParse类时通过option_list指定option定义列表,version作为版本管理,OptionParse默认会添加一个-h/–help的选项,用来打印命令行帮组列表。
通过add_option方法可以动态的添加一个option,即实例化一个Option类。Option类里面会定义一些属性用来管理各种负责的命令行参数。通过parse_args方法可以解析命令行参数,解析结果保存在一个Values解析类实例中。
通俗点讲就是可以做一个脚本 指定脚本后跟什么参数和内容,多余的未指定参数也会收集
add_option
add_options的原型是
def add_option(self, args, *kwargs)
在调用add_option时args和kwargs的使用
1. args类的参数是不带key值的,比如-f, –file
2. kwargs类是带key的,比如action=”store”
add_option的其他的参数
action: 验证输入数据类型是否和type 匹配,并将符合要求的这个参数存储到dest变量中。有以下几个属性:
store 默认值
- store_false 标记而已 配合下边的那个store_true来进行代码的“标记”,辅助流程控制。
store_true 标记而已
type : 指的是对应于参数,如-f,-n等的接下来的那个参数的数据类型,有string,int,float等等
dest : 用于保存临时变量,其值可以作为options的属性进行访问。存储的内容就是如-f,-n 等紧挨着的那个参数内容。
help: 提供用户友好的帮助信息,一般可以用来解释本add_option方法的功能阐述。
示例
模拟运行py脚本 后加参数
#-*- coding:utf-8 -*-
import optparse #解析命令行命令模块
class ArgvHandler():
def __init__(self):
self.test = optparse.OptionParser()
self.test.add_option("-u","--user",dest="user")
self.test.add_option("-p", "--passwd", dest="passwd")
options,args = self.test.parse_args()
print("您的用户信息:",options,"其它输入参数有:",args)
print("用户是:", options.user)
print("密码是:",options.passwd)
ArgvHandler()
F:\python>python optparse_test.py -u root -p 123456 abc efg
您的用户信息: {'user': 'root', 'passwd': '123456'} 其它输入参数有: ['abc', 'efg']
用户是: root
密码是: 123456