该模块提供了解析命令行选项的接口,其中optparse已经在2.7以后的版本中已经不再继续开发好此模块,从2.7后,将开发argparse模块。

optparse模块使用的代码示例:

#!/bin/sh
#
#  This is a learning notes in the process of analysing repo python scripts
#   authour: fuyajun1983cn@hotmail.com
#
magic='--calling-python-from-/bin/sh--'
"""exec" python -E "$0" "$@" """#$magic"
if __name__ == '__main__':import sysif sys.argv[-1] == '#%s' % magic:del sys.argv[-1]
del magic#
print "An example of using optparse\n"from optparse import OptionParserparser = OptionParser()
parser.add_option("-f", "--file", dest="filename",help="write report to FILE", metavar="FILE")
parser.add_option("-q", "--quiet",action="store_false", dest="verbose", default=True,help="don't print status messages to stdout")(options, args) = parser.parse_args()#the default argument list is sys.argv[1:]

其中,options表示指定的选项,args表示对应的位置参数

理解option的actions

Actions告诉optparse怎样处理命令行对应的选项,这些Actions已经预先定义在optparse模块当中,当然可以扩展出更多的Action。默认情况下,action为store。

StoreAction

optparse将紧随其后的参数保存在DEST指定的变量中。如:

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

执行如下语句后:

args = ["-f", "foo.txt"]
(options, args) = parser.parse_args(args)

options.filename的值为foo.txt。

optparse也支持其他类型的参数,如:

parser.add_option("-n", type="int", dest="num")

对于布尔类型的选项,有两个特别的action: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。

其他的一些Actions:

"store_const"
存储一个常量
"append"
将该选项的参数追加到一个列表中
"count"
将某个计数器加 1
"callback"
调用某个特定的函数

默认值

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

首先,默认值与选项无关,只与dest值关联,当多次设置默认值时,最后一次设置的默认值有效。

产生帮助信息

parser.add_option("-v", "--verbose",action="store_true", dest="verbose", default=True,help="make lots of noise [default]")

metavar

它表示用户需要提供的参数,默认情况下,optparse将dest变量名全部转为大写作为metavar的值,当然,我们也可以显示的指定metavar的值。

分组选项

# Logging
group = init_optparse.add_option_group('Logging options')
group.add_option('-q', '--quiet',dest="quiet", action="store_true", default=False,help="be quiet"),
# Manifest
group = init_optparse.add_option_group('Manifest options')
group.add_option('-u', '--manifest-url',dest='manifest_url',help='manifest repository location', metavar='URL')

转载于:https://my.oschina.net/fuyajun1983cn/blog/263966

optparse模块相关推荐

  1. Python [9] optparse模块生成命令行帮助信息

    起初,最先接触python命令行传参是sys模块的argv方法,此方法功能简单,稍微增加一些需求,就不难满足需要了 那么今天就和大家聊聊optparse模块来替换sys模块的argv方法 一.optp ...

  2. python getopt argparse_python OptParse模块和argparse命令行解析的用法详解

    https://www.cnblogs.com/wj-1314/p/8974021.html OptParse模块的简单介绍 Python 有两个内建的模块用于处理命令行参数: 一个是 getopt只 ...

  3. Python中的 optparse模块

    python的内置模块中对于命令行的解析模块共两个getopt 和 optparse .不过getopt过于简单,往往不能满足需求.此时可以使用optparse模块.这个模块相对于getopt更新,功 ...

  4. python中parse是什么_Python中optparse模块使用浅析

    最近遇到一个问题,是指定参数来运行某个特定的进程,这很类似Linux中一些命令的参数了,比如ls -a,为什么加上-a选项会响应.optparse模块实现的也是类似的功能,它是为脚本传递命令参数. 使 ...

  5. Python下使用optparse模块实现对多个文件进行统计【二】

    一个取代shell wc -l 命令的python小脚本 1.通过python下optparse模块下OptionParser类是新对文件的统计 #!/opt/data/ipy/bin/python ...

  6. python 获取参数模块_Python中获取启动程序时后面跟的参数的方法(optparse模块)【冰斌棒】...

    Python中获取启动程序时后面跟的参数的方法(optparse模块)[冰斌棒] 3年前 (2018-01-29)    作者:冰斌棒    分类:冰斌棒18程序计划    阅读次数:871 评论(0 ...

  7. python hank_python optparse模块

    optparse是专门用来在命令行添加选项的一个模块. 首先来看一段示例代码 from optparse import OptionParser MSG_USAGE = "myprog[ - ...

  8. 转载:optparse模块OptionParser学习

    optparse是专门用来在命令行添加选项的一个模块. 首先来看一段示例代码 from optparse import OptionParser MSG_USAGE = "myprog[ - ...

  9. 【转】Python之optparse模块OptionParser的使用方法

    一.基本用法 optparse,是一个更够让程序设计人员轻松设计出简单明了.易于使用.符合标准的Unix命令例程式的Python模块.生成使用和帮助信息 首先你必须导入该类,并创建一个OptionPa ...

最新文章

  1. GPU自动调度卷积层
  2. 安装eAccelerator
  3. Jemeter对HTTP接口压测(二)
  4. 金融行业容器平台落地路径:敏捷响应业务更迭
  5. 如何在 Linux 中快速地通过 HTTP 提供文件访问服务
  6. UVa10881 Piotr's Ants【模拟】
  7. 从jupyter转换为exe格式
  8. iOS应用内购常见问题及注意事项
  9. CAD调试时抛出“正试图在 os 加载程序锁内执行托管代码。不要尝试在 DllMain 或映像初始化函数内运行托管代码”异常的解决方法...
  10. 《Java 8实战》 之 Lambda
  11. CSS标准盒模型和怪异盒模型区别
  12. Codeforces Global Round 2 B. Alyona and a Narrow Fridge(二分)
  13. 竞业达录像服务器怎么修改,竞业达全国电子监考调试说明.doc
  14. 影视APP下载页面自适应html源码
  15. 解析C++隐藏与覆盖
  16. 树莓派 TeamView 远程访问分辨率设置
  17. python开发软件-七种流行的python开发软件,收藏了!
  18. wsappx关不掉_wsappx是什么_如何关闭_windows10系统
  19. ps上的阴影用css应该如何表示?
  20. SolidWorks如何在圆柱体侧面开槽

热门文章

  1. oracle numtodsinterval and numtoyminterval 使用法则
  2. 51CTO-ANDROID相关资料收集整理
  3. 关于System Volume Information占用的大量磁盘空间
  4. Spring中的时间调度,定时任务
  5. SVN 版本服务器搭配全过程详解(含服务端、客户端)
  6. Samba 4.10 发布,完全支持 Python 3
  7. bootstrap layui 两种分页的实现
  8. Markdown编辑器editor.md的使用
  9. 安装高可用性虚拟机,livemigration系列之九
  10. Linux命令(40):watch命令