python中命令行处理--optparse模块

optparser是一个非常灵活、强大的命令行设置解析模块,并且也很容易上手使用。optparse通过创建一个OptionParser的实例,对命令行进行解析。另外,optparse通过GNU/POSIX语法确定命令行选项(option),并且还可以产生命令行的用法和帮助信息。

1、首先导入OptionParser类,然后创建一个OptionParse实例,如下:

from optparse import OptionParser

usage = "usage: python %s [options]" %sys.argv[0]
parser = OptionParser(usage=usage)

OptionParser类的参数如下:

usage(default:"%prog [options]")

这个参数是打印程序的用法,例如:运行错误或者获取帮助信息时

option_list (default: [])这个参数是命令行选项列表,这个选项列表在standard_options_list中选项添加之后,但是在版本和帮助选项添加之前。也可以在创建实例之后通过add_options()添加。

option_list = [
    make_option("-f", "--filename",
                action="store", type="string", dest="filename"),
    make_option("-q", "--quiet",
                action="store_false", dest="verbose"),
    ]
parser = OptionParser(option_list=option_list)

option_class (default: optparse.Option)在add_options()中添加options到解析器(parser)时使用的类

version (default: None)打印的版本信息

conflict_handler (default: "error")选项冲突时的错误处理

description (default: None)程序的间断描述信息

formatter (default: a new IndentedHelpFormatter)帮助信息格式,有两种格式:IndentedHelpFormatter和TitledHelpFormatter.

add_help_option (default: True)如果为true,optparse添加帮助选项option到解析器

prog在usage和version中”%prog“表示的字符串,代替os.path.basename(sys.argv[0])


2、然后添加命令的参数或选项,基本语法如下

parser.add_option("-f", "--file", dest="filename",
    	 help="read data from filename", metavar="FILE")   

一般添加命令行选项通过OptionParser类中的add_option()方法,如:

parser.add_option(opt_str[, ...], attr=value, ...)


3、设置定义完成之后,通过optparse解析程序的命令行,如下:

(options, args) = parser.parse_args()
parse_args主要有两个输入参数:

args(default: sys.argv[1:]) :

处理的参数列表

values(default: a new instance of optparse.Values):

存储选项参数的对象

两个返回值:

options:

与传递的options或者optparse对象相同。通过optpars创建的实例值;

args:

所有被处理的参数之后的参数


4、另外可以对option解析器进行查询和操作

has_option(opt_str)
如果OptionsParser有一个opt_str字符串的选项返回true (e.g., -q or --verbose).
get_option(opt_str)
返回opt_str的选项实例,如果没有改选项字符串则返回None

remove_option(opt_str)

如果存在opt_str的选项则移除;如果存在多个opt_str的选项,所有相关的选项都变味无效的;如果不在OptionsParser中,则抛出ValueError


5、如果希望移除OptionParser,则通过调用destory()销毁该实例。

以上是optparse常用的功能,详细的帮助可以参考python参考手册。

完整实例代码如下:

import sys    
from optparse import OptionParser

def main():
    usage = "usage: python %s [options]" %sys.argv[0]
    parser = OptionParser(usage=usage)
    
    parser.add_option("-f", "--file", dest="filename",
    		          help="read data from filename", metavar="FILE")    
    parser.add_option("-v", "--verbose", 
                      action= "store_true", dest="verbose")        
    parser.add_option("-q", "--quiet",
                      action = "store_false", dest="verbose")    
    (options, args) = parser.parse_args()
    
    if len(args) != 1:
        parse.error("incorrect number of argument")
    if options.verbose:
        print "reading %s..." % options.filename

if __name__ == "__main__":
    main()

保存为test.py执行结果如下:

python tset.py -h
Usage: python 111.py [options]

Options:
  -h, --help            show this help message and exit
  -f FILE, --file=FILE  read data from filename
  -v, --verbose
  -q, --quiet



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值