Python命令行参数解析模块optparse使用实例_python

示例

复制代码 代码如下:

from optparse import OptionParser
[...]
def main():
    usage = "usage: %prog [options] arg"
    parser = OptionParser(usage)
    parser.add_option("-f", "--file", dest="filename",
                      help="read data from FILENAME")
    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:
        parser.error("incorrect number of arguments")
    if options.verbose:
        print "reading %s..." % options.filename
    [...]

if __name__ == "__main__":
    main()

增加选项(add_option())

复制代码 代码如下:

OptionParser.add_option(option)
OptionParser.add_option(*opt_str, attr=value, ...)

定义短选项

复制代码 代码如下:

parser.add_option(“-f”, attr=value, …)

定义长选项

复制代码 代码如下:

parser.add_option(“–foo”, attr=value, …)

如果定义

复制代码 代码如下:

​parser.add_option("-f", "--file", action="store", type="string", dest="filename")

命令行格式可以有以下形式

复制代码 代码如下:

-ffoo
-f foo
--file=foo
--file foo

解析后结果

复制代码 代码如下:

options.filename = “foo”

解析(parse_args())

复制代码 代码如下:

(options, args) = parser.parse_args()

options 解析后的参数,以字典形式保存
args 不能解析的参数,以列表形式保存

行为(action)

●store 默认行为,保存值到dest
●“store_const” 保存常量
●“append” append this option's argument to a list
●“count” increment a counter by one
●“callback” call a specified function

设置默认值(default)

复制代码 代码如下:

parser.add_option("-v", action="store_true", dest="verbose", default=True)
parser.set_defaults(verbose=True)

生成帮助提示(help)

提供help选项即可,可以用parser.print_help()打印出来

复制代码 代码如下:

parser.add_option(“-f”, “–file”, dest=”filename”,help=”write report to FILE”, metavar=”FILE”)

设置boolean值

支持store_true和store_false两个行为

复制代码 代码如下:

parser.add_option("-v", action="store_true", dest="verbose")
parser.add_option("-q", action="store_false", dest="verbose")

如果遇到-v,verbose=True;如果遇到-q,verbose=False

错误处理

复制代码 代码如下:

(options, args) = parser.parse_args()
[...]
if options.a and options.b:
    parser.error("options -a and -b are mutually exclusive")

选项组(Grouping Options)

格式如下

class optparse.OptionGroup(parser, title, description=None)

复制代码 代码如下:

group = OptionGroup(parser, "Dangerous Options",
                    "Caution: use these options at your own risk.  "
                    "It is believed that some of them bite.")
group.add_option("-g", action="store_true", help="Group option.")
parser.add_option_group(group)

提示结果如下

复制代码 代码如下:

Usage: <yourscript> [options] arg1 arg2

Options:
  -h, --help            show this help message and exit
  -v, --verbose         make lots of noise [default]
  -q, --quiet           be vewwy quiet (I'm hunting wabbits)
  -f FILE, --filename=FILE
                        write output to FILE
  -m MODE, --mode=MODE  interaction mode: novice, intermediate, or
                        expert [default: intermediate]

  Dangerous Options:
    Caution: use these options at your own risk.  It is believed that some
    of them bite.

    -g                  Group option.

时间: 2024-06-15 18:51:05

Python命令行参数解析模块optparse使用实例_python的相关文章

Python命令行参数解析模块getopt使用实例_python

格式 getopt(args, options[, long_options]) 1.args表示要解析的参数. 2.options表示脚本要识别的字符.字符之间用":"分隔,而且必须要以":"后结尾,例如"a:b:c:". 3.long_options是可选的,如果指定的话,可以解析长选项.形式为字符串列表,如['foo=', 'frob='].长选项要求形式为"–name=value" 4.该方法返回2个元素.第一个元素是

python命令行参数解析OptionParser类用法实例_python

本文实例讲述了python命令行参数解析OptionParser类的用法,分享给大家供大家参考. 具体代码如下: from optparse import OptionParser parser = OptionParser(usage="usage:%prog [optinos] filepath") parser.add_option("-t", "--timeout", action = "store", type =

nodejs命令行参数处理模块commander使用实例

  诚然,之前处理都是使用内置的process.agrv ,这个能work,但是不好使,于是tj大神给写了一个,my god,完全的高大上: 1.安装 代码如下: npm install commander 2.option 解析 Options with commander are defined with the .option() method, also serving as documentation for the options. The example below parses

nodejs命令行参数处理模块commander使用实例_node.js

诚然,之前处理都是使用内置的process.agrv ,这个能work,但是不好使,于是tj大神给写了一个,my god,完全的高大上: 1.安装 复制代码 代码如下: npm install commander 2.option 解析 Options with commander are defined with the .option() method, also serving as documentation for the options. The example below pars

使用ANTLR进行命令行参数解析

关于命令行参数的解析没有特定的规则,目前比较流行的有unix风格和微软风格.其实除了unix风格 的比较一致外,微软自己提供的命令行参数解析就有很多种风格.在.net平台下的main函数中,仅仅把参 数分解为以空格分割的数组,这对需要加开关,并且有的开关有自己的参数的情况是不够的,而且为了解 析这些参数需要学习部分词法分析的知识,这对用处不是很大的命令行参数显得有些"鸡肋",当然用 Antlr来处理命令行参数更显得有些鸡肋,并且是大才小用,因为Antlr的语法规则比较复杂,学习起来有

python命令行参数处理

使用argparse包来解析命令行参数: 1 #/usr/bin/python 2 #encoding=utf-8 3 4 import argparse 5 parser = argparse.ArgumentParser() 6 #parser.parse_args() 7 8 #位置参数, echo只是一个占位符而已,也可以定义参数的类型 9 parser.add_argument("arg_01", help="add one command", type=

【原创】memcached 中的命令行参数解析

     本文主要是以 memcached 源码为例,讲解如何在 linux 下解析命令行参数.  安装 memcached 后,查看其可用选项:  ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 [root@Be

使用docopt轻松实现python命令行参数处理

前面认识的一个python库 docopt,可以使用__doc__来实现命令行参数的处理,使用起来非常简单:我也刚好有在命令行添加或删除testsuite/testcase的需求,所以写了一个demo文件. PS:我才发现docopt有2年没更新了,好吧,还是可以继续用它. 直接上我的demo程序 #!/usr/bin/env python """Just try docopt lib for python Usage:   try_docopt.py (-h | --hel

Python 命令行参数sys.argv_python

Python代码: import os, sysos.system(sys.argv[1]) 带参数执行 python xxx.py speos.system 是用来执行命令行的.因此该程序会接收到第一个参数spe,然后在命令行里执行spe,这样,spe(Python IDE)就打开了.