zoukankan      html  css  js  c++  java
  • python optparse模块

    为了从更快的的使用这个模块,我们会省略一些东西,开始吧。

    1. 加载模块

    from optparse import OptionParser

    2. 实例化OptionParse,可以理解为表明useage和version:如

    parser = OptionParser(usage="usage: %prog [options] <start directory> <OPTIONAL: filename regex>",
                             version="%prog 1.0")

    3. 添加参数,如-c,--csv啥的,也就是你想要添加的功能参数。你可以添加很多,随你的需要

    parser.add_option("-c", "--csv",#-c 就是参数的缩写了:-c,--csv也是全程了,其实是一个意思,用那个都行
                         action="store",#这里可以游3个值,store,store_true,store_false,如果-a后面还有一个参数,比如目录,那么就需要用store,如果没有参数,就用store_true或者store_false
                         dest="is_csv",#这个很重要,是存储的变量,后面的程序调用参数的值就靠它了,比如is_sev 是true还是false。is_cev 后面的文件路径等
                         default=False,#缺省值
                         help="generate CSV outfile",#help时的输出信息
                         metavar="FILECSV")#说明参数的的类型,是路径还是文件等。

    4. 解析参数,赋值给options和args。

    (options, args) = parser.parse_args()
    '''
    如果我将options和args 打印出来是这样的
    print args,len(args)
    print options
    ['c:/test'] 1
    {'test1':False,'test2':False}
    
    
    
    options让你可以通过直接调用前面提到的过dest中的值来访问参数,
    例如:
    if options.is_all:
        你要执行的代码
    
    argv就是参数的列表了,加入命令是这样的test.py -a -c  /usr/test
    那么:argv[0] 就是 /usr/test  
        
    
    '''

    5. 好了,现在已经解析完参数了,剩下就是处理逻辑了,当用户指定了这个参数,我们应该做什么处理。应该怎么做呢?

    首先如果我这个程序是需要用户给出至少一个参数的,并且我想判断下他给的路径是不是存在的,那么我可以这么做:

    if len(args) < 1:
           parser.print_help()
           print ""
           sys.exit()
    
      
    if os.path.exists(args[0]) == False:
           parser.error("Invalid path")

    然后需要处理具体的参数的逻辑:

    然后处理参数的逻辑:

    if options.is_csv:
           csv_array.insert(0,csv_header)
           fileOutput = csv.writer(open(options.is_csv, "wb"))
           fileOutput.writerows(csv_array)

    好了,搞定收工。

  • 相关阅读:
    iOS:抽屉侧滑动画两种形式(1、UIView侧滑 2、ViewController侧滑)
    深入浅出 React Native:使用 JavaScript 构建原生应用
    JQuery:通过noConflict()方法同时使用jQuery 和其他框架
    JQuery AJAX: 了解jQuery AJAX
    iOS:iOS开发非常全的三方库、插件等等
    JavaScript:实现瀑布流
    iOS:crash崩溃日志分析
    敏捷开发一千零一夜
    江恩交易战法
    苹果:贩卖高科技的美学体验
  • 原文地址:https://www.cnblogs.com/maseng/p/3388046.html
Copyright © 2011-2022 走看看