<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      python類庫31[命令行解析]

       

      python解析命令行參數 [推薦使用optionparser]

       

      一 手動對sys.argv[1:]解析

      需要自己使用string比較或者regex來解析。

      import sys
      def TestSys():
        
      for arg in sys.argv[1:]:
          
      print (arg)

       

       

      二 使用getopt模塊來解析

      1. 處理所使用的函數叫getopt(),因為是直接使用import導入的getopt模塊,所以要加上限定getopt才可以。
      2. 使用sys.argv[1:]過濾掉第一個參數(它是執行腳本的名字,不應算作參數的一部分)。
      3. 使用短格式分析串"ho:"。當一個選項只是表示開關狀態時,即后面不帶附加參數時,在分析串中寫入選項字符。當選項后面是帶一個附加參數時,在分析串中寫入選項字符同時后面加一個":"號。所以"ho:"就表示"h"是一個開關選項;"o:"則表示后面應該帶一個參數。
      4. 使用長格式分析串列表:["help", "output="]。長格式串也可以有開關狀態,即后面不跟"="號。如果跟一個等號則表示后面還應有一個參數。這個長格式表示"help"是一個開關選項;"output="則表示后面應該帶一個參數。
      5. 調用getopt函數。函數返回兩個列表:opts和args。opts為分析出的格式信息。args為不屬于格式信息的剩余的命令行參數。opts是一個兩元組的列表。每個元素為:(選項串,附加參數)。如果沒有附加參數則為空串''。
      6. 整個過程使用異常來包含,這樣當分析出錯時,就可以打印出使用信息來通知用戶如何使用這個程序。

       

      程序:

      import sys
      import getopt
      def TestGetOpt():
        
      try:
          opts, args 
      = getopt.getopt(sys.argv[1:],'d:f:h',['days=','files=','help'])
        
      except getopt.GetoptError:
           usage()
           sys.exit()

        
      print (opts)
        
      print (args)
        
      for o, a in opts:
           
      if o in ("-h""--help"):
               usage()
               sys.exit()
           
      elif o in ("-d""--days"):
               day 
      = a
           
      elif o in ("-f""--files"):
               files 
      = a
        
      print (day)
        
      print (files)

       

      調用及結果:%prog -d 7 -f files.txt c:\backup

      [('-d', '7'), ('-f', 'files.txt')]
      ['c:\\backup']
      7
      files.txt 

       

       

      三 使用optionparser模塊來解析

      optionparser的執行過程:

      導入optionparser : from optparse import OptionParser
      構造optionparser的對象:parser = OptionParser()
      往optionparser對象中增加option :parser.add_option()

      調用optionparser的解析函數:(options, args) = parser.parse_args()
      在options中使用解析到的options,在args中使用其他的args。

       

      1)簡單實例

      def TestOpionparser():
        
      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
      ="don't print status messages to stdout")
        (options, args) 
      = parser.parse_args()
        
      print (options.filename)
        
      print (options.verbose)
        
      print (args)

       

      運行:%prog -f files.txt -q arg1 arg2

      運行結果:

      files.txt
      False
      ['arg1', 'arg2']

       

      2)更多更靈活的參數傳入方式:

      <yourscript> --file=outfile -q

      <yourscript> -f outfile --quiet
      <yourscript> --quiet --file outfile
      <yourscript> -q -foutfile
      <yourscript> -qfoutfile

       

      3)幫助被自動的生成,只需要-h來顯示

      顯示幫助:%prog -h

      例如1)程序的幫助結果:

      Usage: parsecommandline.py [options]

      Options:
        -h, --help            show this help message and exit
        -f FILE, --file=FILE  write report to FILE
        -q, --quiet           don't print status messages to stdout

       

      如果你需要顯示自定義的,可以在定義optionparser時候傳入,例如:

      usage = "usage: %prog [options] arg1 arg2"
      parser = OptionParser(usage=usage)

       

      同時還可以增加程序的版本信息,簡單地:

      parser = OptionParser(usage="%prog [-f] [-q]", version="%prog 1.0")
      調用:%prog --version

       

      4)add_option()中參數的意義:

      short option string: 為第一個參數,表示option的縮寫,例如-f;

      long option string: 為第二個參數,表示option的全拼,例如--file;

      后面的參數皆為命名參數,命名參數為可選參數;

      action=: 表示對此option的處理方式,默認值為store,表示存儲option的值到解析后的options對象的成員中。action還可以有其他的值:對于bool值,使用store_true來默認存儲true,使用store_false來默認存儲false,store_const用來存儲const設置的值到此option,append表示增加option的參數到list中,此時此option是一個list,可能包含多個值,count表示對counter增加一,callback表示調用指定的函數。所有的action值如下:

      store + store_true + store_false + store_const + append + count + callback

      type=:表示此option的值的類型,默認為string,可以指定為string, int, choice, float and complex

      dest=:表示此option在經過optionparser解析后的options對象中成員的名字,默認使用long option string;

      default=:表示比option的默認值;

      metavar=:表示顯示到help中option的默認值;

      const=:當action為store_const的時候,需要設置此值;

      choices=:當設置type為choices時,需要設置此值;

       

      5)如果options很多的時候,可以進行分組,使用如下:

      group = OptionGroup(parser)

      group.add_option()
      parser.add_option_group(group)

       

      6)通常的使用如下,其中包含了parser.error()來拋出與optionparser較一致的異常和錯誤信息。

      from optparse import OptionParser
      [...]
      def main():
          usage 
      = "usage: %prog [options] arg"
          parser 
      = OptionParser(usage)
          parser.add_option(
      "-f""--file", dest="filename",
                            help
      ="read data from FILENAME")
          parser.add_option(
      "-v""--verbose",
                            action
      ="store_true", dest="verbose")
          parser.add_option(
      "-q""--quiet",
                            action
      ="store_false", dest="verbose")
          [...]
          (options, args) 
      = parser.parse_args()
          
      if len(args) != 1:
              parser.error(
      "incorrect number of arguments")
          
      if options.verbose:
              
      print("reading %s..." % options.filename)
          [...]

      if __name__ == "__main__":
          main()

       

       

       

      完!

       

       

      參考:

      http://bbs.linuxtone.org/thread-4797-1-1.html

      http://apps.hi.baidu.com/share/detail/6463885

       

      完!

       

      posted @ 2010-12-31 11:28  iTech  閱讀(5174)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 性色在线视频精品| 国产一区二区三区不卡观 | 深夜视频国产在线观看| 无码粉嫩虎白一线天在线观看| 精品久久久久中文字幕日本| 国产一二三五区不在卡| 国产精品久久无码一区| 老子午夜精品888无码不卡| 欧美不卡无线在线一二三区观| 九九在线精品国产| 一二三三免费观看视频| 亚洲精品天堂在线观看| 日本一区不卡高清更新二区| 亚洲中文久久久精品无码| 国产精品制服丝袜白丝| 色综合五月伊人六月丁香| 又色又爽又黄的视频网站| 亚洲国产精品久久久天堂麻豆宅男| 国产精品国产高清国产av| 99国精品午夜福利视频不卡99| 国产精品麻豆欧美日韩ww| 一区二区亚洲人妻av| 在线播放国产精品亚洲| 国产超高清麻豆精品传媒麻豆精品 | 最新亚洲av日韩av二区| 激情综合色综合久久综合| 亚洲区综合区小说区激情区| 内射中出无码护士在线| 性欧美VIDEOFREE高清大喷水| 黑人巨茎大战欧美白妇| 被灌满精子的少妇视频| 毛片av中文字幕一区二区| 久久精品国产99久久6| 亚洲成人av一区二区| 熟女人妻aⅴ一区二区三区电影| 这里只有精品免费视频| 国产中文字幕精品视频| 亚洲中文无码av在线| 久久永久视频| 亚洲AV无码国产在丝袜APP| 五月天丁香婷婷亚洲欧洲国产|