1. from optparse import OptionParser
  2.  
  3. parser = OptionParser()
  4. parser.add_option( '-f', '--file', dest='filename', help='write report to FILE', metavar='FILE' )
  5. parser.add_option( '-q', '--quiet', action='store_false', dest='verbose', default=True, help='do not print status messages to stdout' )
  6.  
  7. (options, args) = parser.parse_args()
  8.  
  9. 注: 你也可以传递一个命令行参数列表到 parse_args()
  10. 如果不传,默认使用 sys.argv[1:]
  11.  
  12. parse_args() 返回的两个值
  13.  
  14. options 是对象 optpars.Values 保存有命令行参数值,只要知道命令行参数名,如 file 就可以访问其对应的值 options.file
  15. args positional arguments 组成的列表
  16.  
  17. action parse_args() 方法的参数之一,它指示 optparse 当解析到一个命令行参数时该如何处理。actions 有一组固定的值可供选择,默认是 store ,表示将命令行参数值保存在 options 对象里。
  18.  
  19. 示例
  20. parser.add_option( '-f', '--file', action='store', type='string', dest='filename' )
  21. args = ['-f', 'foo.txt']
  22. (options, args) = parser.parse_args(args)
  23. print options.filename
  24.  
  25. 最后将会打印出 foo.txt
  26.  
  27. optparse 解析到 -f ,会继续解析后面的 foo.txt ,然后将 foo.txt 保存到 options.filename
  28. 当调用 parser.args() 后,options.filename 的值就为 foo.txt
  29.  
  30. 你也可以指定 add_option() 方法中 type 参数为其它值,如 int 或者 float 等等
  31. parser.add_option( '-n', type='int', dest='num' )
  32.  
  33. 默认地,type string 。也正如上面所示,长参数名也是可选的。其实,dest 参数也是可选的。如果没有指定 dest 参数,将用命令行的参数名来对 options 对象的值进行存取。
  34.  
  35. store 也有其它的两种形式 store_true store_false
  36. 用于处理带命令行参数后面 不带值 的情况。如 -v, -q 等命令行参数:
  37.  
  38. parser.add_option( '-v', action='store_true', dest='verbose' )
  39. parser.add_option( '-q', action='store_false', dest='verbose' )
  40.  
  41. 这样的话,当命令行解析到 -v options.verbose 将被赋予 True 值,反之,解析到 -q 时会被赋予 False
  42.  
  43. 其它的 actions 值还有
  44. store_const append count callback
  45.  
  46. parse_args() 方法提供了一个 default 参数用于设置默认值
  47.  
  48. parser.add_option( '-f', '--file', action='store', dest='filename', default='foo.txt' )
  49. parser.add_option( '-v', action='store_true', dest='verbose', default=True )
  50.  
  51. 又或者使用 set_defaults()
  52.  
  53. parser.set_defaults( filename='foo.txt', verbose=True )
  54. parser.add_option(...)
  55. (options, args) = parser.parse_args()
  56.  
  57. 生成程序帮助
  58.  
  59. optparse 另一个方便的功能是自动生成程序的帮助信息。你只需要为 add_option() 方法的 help 参数指定帮助信息文本
  60. 设置 add_option 方法中的 metavar 参数,有助于提醒用户该命令行参数所期待的参数,如 metavar='mode'
  61. 注意: metavar 参数中的字符串会自动变为大写
  62. help 参数的帮助信息里使用 %default 可以插入该命令行参数的默认值

更多内容,参考 http://www.cnblogs.com/captain_jack/archive/2011/01/11/1933366.html

python命令行参数处理模块 optparse 使用参考的更多相关文章

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

    Python命令行参数解析模块getopt使用实例 这篇文章主要介绍了Python命令行参数解析模块getopt使用实例,本文讲解了使用语法格式.短选项参数实例.长选项参数实例等内容,需要的朋友可以参 ...

  2. python命令行参数解析模块argparse和docopt

    http://blog.csdn.net/pipisorry/article/details/53046471 还有其他两个模块实现这一功能,getopt(等同于C语言中的getopt())和弃用的o ...

  3. Python命令行参数解析模块argparse

    当写一个Python脚本时经常会遇到不同参数不同功能的情况,如何做一个更好看的命令帮助信息以及对命令参数解析呢? 这就需要使用argparse模块 #!/usr/bin/env python # -* ...

  4. python 命令行参数——argparse模块的使用

    以下内容主要来自:http://wiki.jikexueyuan.com/project/explore-python/Standard-Modules/argparse.html argparse ...

  5. python中处理命令行参数的模块optpars

    optpars是python中用来处理命令行参数的模块,可以自动生成程序的帮助信息,功能强大,易于使用,可以方便的生成标准的,符合Unix/Posix 规范的命令行说明.使用 add_option() ...

  6. $命令行参数解析模块argparse的用法

    argparse是python内置的命令行参数解析模块,可以用来为程序配置功能丰富的命令行参数,方便使用,本文总结一下其基本用法. 测试脚本 把以下脚本存在argtest.py文件中: # codin ...

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

    python命令行参数解析OptionParser类用法实例 本文实例讲述了python命令行参数解析OptionParser类的用法,分享给大家供大家参考. 具体代码如下:     from opt ...

  8. Python命令行参数及文件读出写入

    看完了柯老板的个人编程作业,虽然是评测组不用做此次作业,但还是想对本次作业涉及到利用Python命令行参数以及进行文件读出写入操作做一个简单的总结.(个人编程作业还是想自己能敲一敲,毕竟我的码力还是小 ...

  9. [转]Python 命令行参数和getopt模块详解

    FROM : http://www.tuicool.com/articles/jaqQvq 有时候我们需要写一些脚本处理一些任务,这时候往往需要提供一些命令行参数,根据不同参数进行不同的处理,在Pyt ...

随机推荐

  1. IDE改为AHCI后系统无法启动的解决办法

    1.intel CPU 一.找到HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Msahci,“Start”项值改为“0”. 二.重启,进入b ...

  2. hdu-5683 zxa and xor (位运算)

    题目链接: zxa and xor Time Limit: 16000/8000 MS (Java/Others)     Memory Limit: 65536/65536 K (Java/Othe ...

  3. asp.net MVC 如何隐藏 Response Header 版本号

    根据借楼最少资源原则,有时候MVC需要隐藏自己的版本号,其实这里也是比较简单的,只需要在Global.ascx 的Application_Start()中添加一行代码既可 添加为  MVCHandle ...

  4. php中一串数子的转化

    echo "<meta charset=utf-8>"; echo "笔试题测试"; $str = "123456780"; $ ...

  5. Jfinal----Handler之责任链设计模式

    Jfinal handler的处理采用了责任链设计模式 有关责任链模式,推荐看: <JAVA与模式>之责任链模式 1.实现Handler只需要继承Handler public class ...

  6. ASP.NET缓存全解析7:第三方分布式缓存解决方案 Memcached和Cacheman 转自网络原文作者李天平

    Memcached — 分布式缓存系统 1.Memcached是什么? Memcached是高性能的,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度.Memcached通过在内 ...

  7. Part 9 Union and union all in sql server

    Union and union all in sql server

  8. MVC4 使用 ckfinder+ckeditor编辑器

    配置ckfinder for asp.net 版本下载地址  http://cksource.com/ckfinder/downloadckeditor下载地址 http://ckeditor.com ...

  9. Android webkit 事件传递流程详解

    前言:基于android webview 上定制自己使用的可移植浏览器apk,遇到好多按键处理的问题.所以索性研究了一下keyevent 事件的传递流程. frameworks 层 keyevent ...

  10. 【学习笔记】【C语言】函数

    一. 什么是函数 任何一个C语言程序都是由一个或者多个程序段(小程序)构成的,每个程序段都有自己的功能,我们一般称这些程序段为“函数”.所以,你可以说C语言程序是由函数构成的. 比如你用C语言编写了一 ...