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

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

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

      Python內置模塊:optparse — 命令行選項的解析器詳解

      什么是命令行參數解析?

      在開發命令行工具時,經常需要處理用戶輸入的參數和選項。例如,在Linux系統中,ls -l /home命令中的-l就是一個選項,/home是一個位置參數。命令行參數解析就是將這些參數和選項提取出來,供程序使用的過程。

       

      一. 基本使用方法

      1.1 創建解析器和添加選項

      from optparse import OptionParser
      
      def main():
          # 創建解析器實例
          parser = OptionParser(usage="%prog [options] input_file output_file")
      
          # 添加選項
          parser.add_option("-v", "--verbose",
                            action="store_true", dest="verbose", default=False,
                            help="啟用詳細輸出模式")
          parser.add_option("-f", "--file",
                            action="store", type="string", dest="filename",
                            help="指定輸入文件", metavar="FILE")
          parser.add_option("-n", "--number",
                            action="store", type="int", dest="count",
                            help="指定數量", metavar="NUM")
      
          # 解析參數
          (options, args) = parser.parse_args()
      
          # 使用解析結果
          if options.verbose:
              print("詳細模式已啟用")
      
          if options.filename:
              print(f"輸入文件: {options.filename}")
      
          if options.count is not None:
              print(f"數量: {options.count}")
      
          if args:
              print(f"位置參數: {args}")
      
      
      if __name__ == "__main__":
          main()

      1.2 解析參數和獲取結果

      parse_args()方法返回一個元組(options, args)

      • options:包含所有選項值的對象
      • args:剩余的位置參數列表

       

      2.選項動作(Actions)

      2.1 store動作

      最常用的動作,將選項參數存儲到指定目標。

      from optparse import OptionParser
      
      
      def demo_store_action():
          parser = OptionParser()
      
          # 基本store動作
          parser.add_option("-f", "--file",
                            action="store", type="string", dest="filename")
      
          # 測試解析
          options, args = parser.parse_args(["-f", "test.txt"])
      
      
          print(f"文件名:{options.filename}")  # 輸出: 文件名: test.txt
      

        

      2.2 store_const動作

      存儲一個常量值,而不是從命令行讀取的值。

      from optparse import OptionParser
      
      
      def demo_store_const():
          parser = OptionParser()
      
          parser.add_option("--debug",
                            action="store_const", const=True, dest="debug_mode")
          parser.add_option("--no-debug",
                            action="store_const", const=False, dest="debug_mode")
      
          options, args = parser.parse_args(["--debug"])
          print(f"調試模式:{options.debug_mode}")  # 輸出: 調試模式: True
      

        

      2.3 store_true和store_false動作

      store_const的特例,分別存儲TrueFalse

      from optparse import OptionParser
      
      
      def demo_store_bool():
          parser = OptionParser()
      
          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(["-v"])
      
      
          print(f"詳細模式:{options.verbose}")  # 輸出: 詳細模式: True
      

        

      2.4 append動作

      將多個選項參數收集到列表中。

      from optparse import OptionParser
      
      
      def demo_append():
          parser = OptionParser()
      
          parser.add_option("-l", "--list",
                            action="append", dest="items")
      
          options, args = parser.parse_args(["-l", "apple", "-l", "banana"])
      
      
          print(f"物品列表:{options.items}")  # 輸出: 物品列表: ['apple', 'banana']
      

        

      4.5 count動作

      統計選項出現的次數

      from optparse import OptionParser
      
      
      def demo_count():
          parser = OptionParser()
      
          parser.add_option("-v", "--verbose",
                            action="count", dest="verbosity")
      
          options, args = parser.parse_args(["-v", "-v", "-v"])
      
      
          print(f"詳細級別:{options.verbosity}")  # 輸出: 詳細級別: 3
      

        

      4.6 callback動作

      最靈活的動作,允許自定義處理邏輯。

      from optparse import OptionParser
      
      def custom_callback(option, opt_str, value, parser):
          print(f"選項:{opt_str}, 值:{value}")
          setattr(parser.values, option.dest, value.upper())
      
      def demo_callback():
          parser = OptionParser()
      
          parser.add_option("-c", "--custom",
                            action="callback", callback=custom_callback,
                            type="string", dest="custom_value")
      
          options, args = parser.parse_args(["-c", "hello"])
          print(f"處理后的值:{options.custom_value}")  # 輸出: 處理后的值: HELLO
      

        

      3. 選項類型(Types)

      3.1 內置類型

      optparse支持多種內置類型:

      類型 描述 示例
      string 字符串類型(默認) "hello"
      int 整數類型 123
      float 浮點數類型 3.14
      complex 復數類型 1+2j
      choice 選擇限定值 "high", "medium", "low"









      3.2 類型使用示例

      from optparse import OptionParser
      
      
      def demo_types():
          parser = OptionParser()
      
          # 整數類型
          parser.add_option("-n", "--number",
                            action="store", type="int", dest="number")
      
          # 浮點數類型
          parser.add_option("-p", "--price",
                            action="store", type="float", dest="price")
      
          # 選擇類型
          parser.add_option("-l", "--level",
                            action="store", type="choice",
                            choices=["low", "medium", "high"], dest="level")
      
          options, args = parser.parse_args([
              "-n", "42",
              "-p", "3.14",
              "-l", "high"
          ])
      
      
          print(f"數字:{options.number}, 類型:{type(options.number)}")
          print(f"價格:{options.price}, 類型:{type(options.price)}")
          print(f"級別:{options.level}")
      

        

       

      posted @ 2025-09-03 09:10  北京測試菜鳥  閱讀(0)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 绥滨县| 黄色三级亚洲男人的天堂| 欧美和黑人xxxx猛交视频| 亚洲福利精品一区二区三区| 小污女小欲女导航| 亚洲性图日本一区二区三区 | 亚洲天码中文字幕第一页| 乱人伦中文字幕成人网站在线 | 在线无码免费看黄网站| 精品日韩亚洲AV无码| 少妇熟女视频一区二区三区| 日韩精品无码免费专区午夜不卡 | 海宁市| 精品国产av无码一区二区三区| 偷窥少妇久久久久久久久| 国产精品视频全国免费观看| 丁香婷婷色综合激情五月| 亚洲欧美v国产一区二区| 久久av中文字幕资源网| 亚洲国产美女精品久久久| 久久亚洲精品中文字幕| 午夜福利院一区二区三区| 国产av午夜精品福利| 国产区图片区小说区亚洲区| 亚洲欧美国产精品久久久久久久 | 日韩免费美熟女中文av| 国产成人精品久久性色av| 亚洲乱色一区二区三区丝袜 | 另类 专区 欧美 制服| 繁昌县| 久久国产精品老人性| 国产日产欧产系列| 精品无人区一码二码三码| 亚洲第一区二区快射影院| 久久爱在线视频在线观看| 久久精品蜜芽亚洲国产AV| 麻豆蜜桃av蜜臀av色欲av| 91中文字幕在线一区| 亚洲精品乱码久久久久久自慰| 九九热在线免费观看视频| 国产成人综合在线女婷五月99播放|