zoukankan      html  css  js  c++  java
  • python命令行参数处理模块 optparse 使用参考

    from optparse import OptionParser  
    
    parser = 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='do not print status messages to stdout' )  
    
    (options, args) = parser.parse_args()  
    
    注: 你也可以传递一个命令行参数列表到 parse_args()
    如果不传,默认使用 sys.argv[1:]
    
    parse_args() 返回的两个值 
    
    options    是对象 optpars.Values 保存有命令行参数值,只要知道命令行参数名,如 file 就可以访问其对应的值 options.file
    args    由 positional arguments 组成的列表        
    
    action 是 parse_args() 方法的参数之一,它指示 optparse 当解析到一个命令行参数时该如何处理。actions 有一组固定的值可供选择,默认是 store ,表示将命令行参数值保存在 options 对象里。
    
    示例
    parser.add_option( '-f', '--file',  action='store',  type='string',  dest='filename' )
    args = ['-f', 'foo.txt']
    (options, args) = parser.parse_args(args)
    print options.filename  
    
    最后将会打印出  foo.txt 
    
    当 optparse 解析到 -f  ,会继续解析后面的 foo.txt ,然后将 foo.txt 保存到 options.filename 里
    当调用 parser.args() 后,options.filename 的值就为 foo.txt
    
    你也可以指定 add_option() 方法中 type 参数为其它值,如 int 或者 float 等等
    parser.add_option( '-n', type='int', dest='num' )  
    
    默认地,type 为 string 。也正如上面所示,长参数名也是可选的。其实,dest 参数也是可选的。如果没有指定 dest 参数,将用命令行的参数名来对 options 对象的值进行存取。
    
    store 也有其它的两种形式 store_true 和 store_false
    用于处理带命令行参数后面 不带值 的情况。如 -v, -q 等命令行参数:
    
    parser.add_option( '-v', action='store_true', dest='verbose' )
    parser.add_option( '-q', action='store_false', dest='verbose' )  
    
    这样的话,当命令行解析到 -v 时 options.verbose 将被赋予 True 值,反之,解析到 -q 时会被赋予 False 值
    
    其它的 actions 值还有
    store_const 、append 、count 、callback 
    
    parse_args() 方法提供了一个 default 参数用于设置默认值
    
    parser.add_option( '-f', '--file', action='store', dest='filename', default='foo.txt' )
    parser.add_option( '-v', action='store_true', dest='verbose', default=True )  
    
    又或者使用 set_defaults()
    
    parser.set_defaults( filename='foo.txt', verbose=True )
    parser.add_option(...)
    (options, args) = parser.parse_args()  
    
    生成程序帮助
    
    optparse 另一个方便的功能是自动生成程序的帮助信息。你只需要为 add_option() 方法的 help 参数指定帮助信息文本
    设置 add_option 方法中的 metavar 参数,有助于提醒用户该命令行参数所期待的参数,如 metavar='mode'
    注意: metavar 参数中的字符串会自动变为大写
    在 help 参数的帮助信息里使用 %default 可以插入该命令行参数的默认值

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

  • 相关阅读:
    mysql case when 条件过滤
    window.parent != window 解决界面嵌套问题
    session cookie原理及应用
    面向程序员的数据库访问性能优化法则
    js奇葩错误 字符串传递问题
    js奇葩错误
    javascript:history.go(-1);
    百度地图sdk定位和遇到的坑
    WebForm 登陆test
    输出字符串格式化/ Linq对数组操作 /一个按钮样式
  • 原文地址:https://www.cnblogs.com/funsion/p/4018020.html
Copyright © 2011-2022 走看看