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