# coding = utf-8

 from optparse import OptionParser
from optparse import OptionGroup usage = 'Usage: %prog [options] arg1 arg2 ...' parser = OptionParser(usage,version='%prog 1.0')
#通过OptionParser类创建parser实例,初始参数usage中的%prog等同于os.path.basename(sys.argv[0]),即
#你当前所运行的脚本的名字,version参数用来显示当前脚本的版本。 '''
添加参数,-f、--file是长短options,有一即可。 action用来表示将option后面的值如何处理,比如:
XXX.py -f test.txt
经过parser.parse_args()处理后,则将test.txt这个值存储进-f所代表的一个对象,即定义-f中的dest
即option.filename = 'test.txt'
action的常用选项还有store_true,store_false等,这两个通常在布尔值的选项中使用。 metavar仅在显示帮助中有用,如在显示帮助时会有:
-f FILE, --filename=FILE write output to FILE
-m MODE, --mode=MODE interaction mode: novice, intermediate, or expert
[default: intermediate]
如果-f这一项没有metavr参数,则在上面会显示为-f FILENAME --filename=FILENAME,即会显示dest的值 defalut是某一选项的默认值,当调用脚本时,参数没有指定值时,即采用default的默认值。
''' parser.add_option('-f','--file',
action='store',dest='filename',
metavar='FILE',help='write output to FILE') parser.add_option('-m','--mode',
default = 'intermediate',
help='interaction mode:novice,intermediate,or expert [default:%default]')
parser.add_option('-v','--verbose',
action='store_true',dest='verbose',default=True,
help='make lots of noise [default]') parser.add_option('-q','--quiet',
action='store_false',dest='verbose',
help="be vewwy quiet (I'm hunting wabbits)") group = OptionGroup(parser,'Dangerous Options',
'Caution: use these options at your own risk.'
'It is believed that some of them bite.')
#调用OptionGroup类,定制以组显示的option group.add_option('-g',action='store_true',help='Group option.')
#添加option
parser.add_option_group(group)
#将刚定制的groupoption加入parser中 group = OptionGroup(parser,'Debug Options')
group.add_option('-d','--debug',action='store_true',
help='Print debug information.')
group.add_option('-s','--sql',action='store_true',
help='Print all SQL statements executed')
group.add_option('-e',action='store_true',help='Print every action done')
parser.add_option_group(group) (options,args) = parser.parse_args()
#解析脚本输入的参数值,options是一个包含了option值的对象
#args是一个位置参数的列表

python.exe xxx.py --help显示结果如下:

Usage: test_optparse.py [options] arg1 arg2 ...

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

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

-g                  Group option.

Debug Options:
    -d, --debug         Print debug information.
    -s, --sql           Print all SQL statements executed
    -e                  Print every action done

最新文章

  1. day6
  2. rabbitMQ中vhost虚拟主机的理解
  3. ASP.NET中的KRE是什么?
  4. KVC实现原理简介
  5. 第八篇 :微信公众平台开发实战Java版之如何网页授权获取用户基本信息
  6. spring 事件(Application Event)
  7. 清空html代码
  8. 图片懒加载 lazyload
  9. 使用Unity游戏引擎在IOS模拟器中运行的方法
  10. Trailing return types
  11. STM32学习笔记——SPI串行通讯(向原子哥学习)
  12. nodebeginer
  13. 在ubuntu linux 中编写一个自己的bash脚本
  14. 201521123079《java程序设计》第3周学习总结
  15. 剑指offer 二叉搜索树和双向链表
  16. [iOS]App上架流程[利用Archive进行上传]
  17. flex bison
  18. [k8s]k8s pod的4种网络模式最佳实战(externalIPs )
  19. GSON使用之对特殊字符的转换的处理
  20. kvm虚拟化平台搭建

热门文章

  1. [LeedCode OJ]#85 Maximal Rectangle
  2. css3 - 动态伪类
  3. 关于Adapter对数据库的查询、删除操作
  4. Odoo10对套件的处理
  5. 【每日Scrum】第八天(4.29) TD学生助手Sprint2
  6. hadoop集群ambari搭建(2)之制作hadoop本地源
  7. 不使用while,for,if等实现加法
  8. Linux中进程的优先级
  9. Markov Decision Processes
  10. centos 在CentOS下编译FFmpeg