处理命令行参数
1 #-*-coding:utf-8-*-
__author__ = 007
__date__ = 16 / 1 / 19
from optparse import OptionParser
# usage 定义的是使用方法
# %prog 表示脚本本身
# version 定义的是脚本名字和版本号
options = OptionParser(usage= "usage: %prog [options] arg1 arg2",version="%prog 1.2")
# add_option()方法定义命令行参数
# -u,--user 表示一个是短选项 一个是长选项
# dest="user" 将该用户输入的参数保存到变量user中,可以通过options.user方式来获取该值
# type=str 表示这个参数的类型必须是str字符型,如果是其他类型那么将强制转换为str(可能会报错)
# metavar="user" 当用户查看帮助信息,如果metavar没有设值,那么显示的帮助信息的参数后面默认带上dest所定义的变量名
# help="Enter User Name" 显示的帮助提示信息
# default=True 表示如果参数后面没有跟值,那么将默认为变量default的值
options.add_option("-u","--user",dest="user",action="store",type=str,metavar="user",help="Enter User Name!")
options.add_option("-f","--file",dest="filename",help="write report to FILE",metavar="FILE")
# action有三种类型:
# action="store" 默认类型,可以忽略不写.用户必须给出一个明确的参数值,该类型定义了将实际参数值保存到dest指定变量中
# action="store_true" 用户不需给出参数值,该类型定义了将布尔值true保存到dest指定的变量中
# action="store_false" 用户不需给出参数值,该类型定义了将布尔值false保存到dest指定的变量中
options.add_option("-v",help="Version!")
options.set_defaults(v=2.0) #也可以这样设置默认值
#parse_args()解析程序的命令行,返回两个值
#opts:它是一个对象(optpars.Values),保存命令行参数值.只要知道命令行参数名,如user,就可以访问其对应的值:opts.user
#args:它是一个由positional arguments组成的列表
(opts,args) = options.parse_args()