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


Posted in Python onApril 13, 2015

示例

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.
Python 相关文章推荐
Python实现获取网站PR及百度权重
Jan 21 Python
初步介绍Python中的pydoc模块和distutils模块
Apr 13 Python
Python使用Mechanize模块编写爬虫的要点解析
Mar 31 Python
深入理解python中的浅拷贝和深拷贝
May 30 Python
Python实现感知机(PLA)算法
Dec 20 Python
Python 25行代码实现的RSA算法详解
Apr 10 Python
详解Python计算机视觉 图像扭曲(仿射扭曲)
Mar 27 Python
Python画图实现同一结点多个柱状图的示例
Jul 07 Python
Python如何调用JS文件中的函数
Aug 16 Python
在keras中实现查看其训练loss值
Jun 16 Python
使用OpenCV实现人脸图像卡通化的示例代码
Jan 15 Python
教你怎么用Python实现GIF动图的提取及合成
Jun 15 Python
初步介绍Python中的pydoc模块和distutils模块
Apr 13 #Python
Python随机生成数模块random使用实例
Apr 13 #Python
Python字典操作简明总结
Apr 13 #Python
Python单元测试框架unittest使用方法讲解
Apr 13 #Python
Python配置文件解析模块ConfigParser使用实例
Apr 13 #Python
深入Python函数编程的一些特性
Apr 13 #Python
Python命令行参数解析模块getopt使用实例
Apr 13 #Python
You might like
PHP生成唯一订单号
2015/07/05 PHP
PHP实现获取并生成数据库字典的方法
2016/05/04 PHP
PHP实现的数独求解问题示例
2017/04/18 PHP
PHP编程获取各个时间段具体时间的方法
2017/05/26 PHP
js获取单选按钮的数据
2006/11/27 Javascript
实现连缀调用的map方法(prototype)
2009/08/05 Javascript
Javascript调用C#代码
2011/01/17 Javascript
可兼容IE的获取及设置cookie的jquery.cookie函数方法
2013/09/02 Javascript
IE中图片的onload事件无效问题和解决方法
2014/06/06 Javascript
jQuery中:last选择器用法实例
2014/12/30 Javascript
javascript实现滑动解锁功能
2014/12/31 Javascript
jQuery实现长按按钮触发事件的方法
2015/02/02 Javascript
jQuery使用slideUp方法实现控制元素缓慢收起
2015/03/27 Javascript
微信小程序实现顶部普通选项卡效果(非swiper)
2020/06/19 Javascript
微信小程序实现轮播图效果
2017/09/07 Javascript
angularJS实现动态添加,删除div方法
2018/02/27 Javascript
jQuery length 和 size()区别总结
2018/04/26 jQuery
vue-cli安装使用流程步骤详解
2018/11/08 Javascript
vue-socket.io跨域问题有效解决方法
2020/02/11 Javascript
vue 函数调用加括号与不加括号的区别
2020/10/29 Javascript
Python的组合模式与责任链模式编程示例
2016/02/02 Python
Python对象转JSON字符串的方法
2016/04/27 Python
python3实现TCP协议的简单服务器和客户端案例(分享)
2017/06/14 Python
对matplotlib改变colorbar位置和方向的方法详解
2018/12/13 Python
获取Pytorch中间某一层权重或者特征的例子
2019/08/17 Python
flask的orm框架SQLAlchemy查询实现解析
2019/12/12 Python
使用css3绘制出各种几何图形
2016/08/17 HTML / CSS
利用CSS3的transform做的动态时钟效果
2011/09/21 HTML / CSS
css3发光搜索表单分享
2014/04/11 HTML / CSS
欧洲当代手工玻璃和瓷器的领先品牌:LSA International
2018/06/03 全球购物
转预备党员政审材料
2014/02/06 职场文书
心得体会的写法
2014/09/05 职场文书
维稳工作承诺书
2015/01/20 职场文书
关于python类SortedList详解
2021/09/04 Python
Python获取字典中某个key的value
2022/04/13 Python
使用HBuilder制作一个简单的HTML5网页
2022/07/07 HTML / CSS