成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Python查詢參數(shù)化4種方法詳細(xì)說明

89542767 / 1046人閱讀

  在平時的撰寫Python腳本制作的過程當(dāng)中,我們通常需要根據(jù)查詢參數(shù)傳到某些自變量基本參數(shù),使新項目應(yīng)用更加靈便便捷。本文列舉了搭建Python查詢參數(shù)的4種普遍方法,所需要的可以了解一下小伙伴們好,在平時的撰寫Python腳本制作的過程當(dāng)中,我們通常需要根據(jù)查詢參數(shù)傳到某些自變量基本參數(shù),使新項目應(yīng)用更加靈便便捷


  本文我們將列舉出搭建Python查詢參數(shù)的4種普遍方法


  分別是:


  內(nèi)嵌sys.argv控制模塊


  內(nèi)嵌argparse控制模塊


  內(nèi)嵌getopt模塊


  第三方平臺依賴庫click


  1.sys.argv


  搭建查詢參數(shù)非常簡單、普遍的方法是運用內(nèi)嵌的「sys.argv」控制模塊


  它是把基本參數(shù)以一種規(guī)范有序目錄傳到,因而在使用過程中傳參次序務(wù)必固定不動


  因而,這種方法適用基本參數(shù)數(shù)量少且情景固定工程中


  importsys
  if__name__=='__main__':
  #獲得參數(shù)列表
  #留意:sys.argv[0]意味著第一位基本參數(shù),即:腳本制作名字「1_sys.argv.py」
  #別的參數(shù)列表
  args=sys.argv[1:]
  #基本參數(shù)數(shù)量
  args_length=len(sys.argv)ifsys.argvelse0
  print("清除運作主文件基本參數(shù),別的參數(shù)列表為:",args)
  print("基本參數(shù)數(shù)量:",args_length)
  #應(yīng)用
  #python31_sys.argv.pyarg1arg2
  #清除運作主文件基本參數(shù),別的參數(shù)列表為:[arg1,arg1]
  #基本參數(shù)數(shù)量:3


  需注意,在腳本制作中以「sys.argv」獲得的參數(shù)列表中,第一位基本參數(shù)意味著腳本制作主文件目錄


  2.argparse


  內(nèi)嵌的argparse控制模塊能夠比較輕松地編寫出友善的查詢參數(shù)腳本制作,而且它會一鍵生成協(xié)助操作手冊,在客戶給程序流程傳到失效基本參數(shù)時可以拋出去清楚的錯誤報告


  官方文檔


  使用這些搭建查詢參數(shù)包括3個階段:


  搭建基本參數(shù)分析對象添加基本參數(shù)加上基本參數(shù)分析基本參數(shù)


  1.搭建argv分析總體目標(biāo)


  importargparse
  ...
  #建立一個argv分析總體目標(biāo)
  parser=argparse.ArgumentParser(description='argv')
  ...


  2.加上argv


  務(wù)必注意的是,--arg1用以特定主要參數(shù)名字,-a1意味著dest總體目標(biāo)變量類型(縮寫)


  ...
  #設(shè)定3個主要參數(shù)
  #主要參數(shù)1:arg1,整形,非必要調(diào)用方法
  #主要參數(shù)2:arg2,字符串?dāng)?shù)組,非必要調(diào)用方法,包括初始值「xag」
  #主要參數(shù)3:arg3,字符串類型,務(wù)必傳到的主要參數(shù)
  parser.add_argument('--arg1','-a1',type=int,help='主要參數(shù)1,非必要主要參數(shù)')
  parser.add_argument('--arg2','-a2',type=str,help='主要參數(shù)2,非必要主要參數(shù),包括初始值',default='xag')
  parser.add_argument('--arg3','-a3',type=str,help='主要參數(shù)3,務(wù)必主要參數(shù)',required=True)
  ...


  3.分析出變量值


  ...
  #分析主要參數(shù),獲得每一個argv(Namespace),隨后變?yōu)樵~典
  args=vars(parser.parse_args())
  #獲得全部主要參數(shù)
  print("全部argv為:")
  forkeyinargs:
  print(f"argv名:{key},變量值:{args[key]}")
  ...
  使用時,大家就可以用「-h/--help」指令主要參數(shù)查詢幫助文件
  #查詢argv幫助文件
  python32_argparse.py--help
  #或
  python32_argparse.py-h
  上邊使用的3個主要參數(shù),參數(shù)arg1、arg2非必要傳值,arg3務(wù)必傳值,此外參數(shù)arg2特定了初始值
  #參數(shù)arg3務(wù)必,參數(shù)arg1和參數(shù)arg2非必要,在其中參數(shù)arg2設(shè)置權(quán)限初始值
  #調(diào)用方法arg3
  #python32_argparse.py--arg3123
  #python32_argparse.py-a3123
  xingagxingagdeMacBook-Proargs%python32_argparse.py-a3123
  全部argv為:
  argv名:arg1,變量值:None
  argv名:arg2,變量值:xag
  argv名:arg3,變量值:123
  #調(diào)用方法arg1、arg3
  xingagxingagdeMacBook-Proargs%python32_argparse.py-a1111-a3123
  全部argv為:
  argv名:arg1,變量值:111
  argv名:arg2,變量值:xag
  argv名:arg3,變量值:123
  #調(diào)用方法arg1、arg2、arg3
  xingagxingagdeMacBook-Proargs%python32_argparse.py-a1111-a2222-a3123
  全部argv為:
  argv名:arg1,變量值:111
  argv名:arg2,變量值:222
  argv名:arg3,變量值:123


  3.getopt


  getopt是Python中的內(nèi)嵌標(biāo)準(zhǔn)模塊,需要結(jié)合sys.argv控制模塊,立即分析腳本運行時主要參數(shù)


  應(yīng)用文件格式:getopt(args,shortopts,longopts=[])


  在其中


  args


  參數(shù)列表,能通過sys.argv獲得,可以參考一下上邊


  shortopts短主要參數(shù)所組成的字符串?dāng)?shù)組


  界定短主要參數(shù),假如主要參數(shù)有值,必須要在短主要參數(shù)后增加1個「:」標(biāo)記


  傳參使用方法:-n23


  longopts長參數(shù)列表


  界定長參數(shù)列表時,假如某一主要參數(shù)有值,必須要在短主要參數(shù)后增加1個「=」標(biāo)記


  傳參使用方法:–port8080


  這兒以傳到數(shù)據(jù)庫服務(wù)器主要參數(shù)為例子(主要參數(shù)包括ip、登錄名、登陸密碼、數(shù)據(jù)庫系統(tǒng)名字)進行介紹


  fromgetoptimportgetopt
  importsys
  #獲取參數(shù)
  #sys.argv[1:]:獲得除腳本制作文件夾名稱以外全部argv
  #opts:存在全部選擇項以及輸入值的數(shù)組目錄
  #args:清除有價值的鍵入之后剩余部分
  opts,args=getopt(sys.argv[1:],'i:u:p:d:',['ip=','user=','pwd=','db='])
  #獲得變量值
  #短主要參數(shù)
  #python34_getopt.py-i127.0.0.1-uroot-p123456-dmysqldb
  #長主要參數(shù)
  #python34_getopt.py--ip127.0.0.1-uroot-p123456-dmysqldb
  ip_pre=[item[1]foriteminoptsifitem[0]in('-i','--ip')]
  ip=ip_pre[0]iflen(ip_pre)>0elseNone
  print("主要參數(shù)ip:",ip)
  user_pre=[item[1]foriteminoptsifitem[0]in('-u','--user')]
  user=user_pre[0]iflen(user_pre)>0elseNone
  print("主要參數(shù)user:",user)
  pwd_pre=[item[1]foriteminoptsifitem[0]in('-p','--pwd')]
  pwd=pwd_pre[0]iflen(pwd_pre)>0elseNone
  print("主要參數(shù)pwd:",pwd)
  db_pre=[item[1]foriteminoptsifitem[0]in('-d','--db')]
  db=db_pre[0]iflen(db_pre)>0elseNone
  print("主要參數(shù)db:",db)
  在運行腳本時,我們能運用「短主要參數(shù)」或「長主要參數(shù)」的方式進行傳送
  #檢測
  #短主要參數(shù)
  python34_getopt.py-i127.0.0.1-uroot-p123456-dmysqldb
  #長主要參數(shù)
  python34_getopt.py--ip127.0.0.1--userroot--pwd123456--dbmysqldb


  4.click


  click作為第三方依賴庫,它為命令行工具封裝了大量的方法,可以非常方便實現(xiàn)命令行參數(shù)


  項目地址


  首先,我們需要安裝依賴庫click


  import click
  #安裝依賴
  #pip3 install-U click
  click.command()
  click.option('--arg1',default='111',help='參數(shù)arg1,默認(rèn)值為「111」')
  click.option('--arg2',type=int,help='參數(shù)arg2')
  click.option('--arg3',type=str,help='參數(shù)arg3')
  def start(arg1,arg2,arg3):
  """
  基于參數(shù)arg1、參數(shù)arg2、參數(shù)arg3運行項目
  :param arg1:
  :param arg2:
  :param arg3:
  :return:
  """
  print("參數(shù)arg1值為:",arg1)
  print("參數(shù)arg2值為:",arg2)
  print("參數(shù)arg3值為:",arg3)
  if __name__=='__main__':
  start()
  然后,在主運行函數(shù)上通過裝飾器配置參數(shù)即可
  比如,上面就定義了3個命令行參數(shù)arg1、arg2、arg3,并設(shè)置了參數(shù)的類型及默認(rèn)值
  最后,在運行腳本時只需要按參數(shù)設(shè)定傳遞對應(yīng)的值即可
  #不包含參數(shù)
  xingag xingagdeMacBook-Pro args%python3 3_click.py
  參數(shù)arg1值為:111
  參數(shù)arg2值為:None
  參數(shù)arg3值為:None
  #包含參數(shù)arg1
  xingag xingagdeMacBook-Pro args%python3 3_click.py--arg1 test1
  參數(shù)arg1值為:test1
  參數(shù)arg2值為:None
  參數(shù)arg3值為:None
  #包含參數(shù)arg1、arg2
  #注意:arg2的參數(shù)類型為整形,傳入的參數(shù)必須能轉(zhuǎn)為整形,否則會報錯
  xingag xingagdeMacBook-Pro args%python3 3_click.py--arg1 test1--arg2 222
  參數(shù)arg1值為:test1
  參數(shù)arg2值為:222
  參數(shù)arg3值為:None
  #包含參數(shù)arg1、arg2、arg3
  xingag xingagdeMacBook-Pro args%python3 3_click.py--arg1 test1--arg2 222--arg3 test3
  參數(shù)arg1值為:test1
  參數(shù)arg2值為:222
  參數(shù)arg3值為:test3


  綜上所述,這篇文章就給大家介紹到這里了。希望可以給大家?guī)韼椭?/p>

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/129076.html

相關(guān)文章

  • Python查詢參數(shù)標(biāo)準(zhǔn)4方法詳細(xì)說明

      在平時的撰寫Python腳本制作的過程當(dāng)中,我們通常需要根據(jù)查詢參數(shù)傳到某些自變量主要參數(shù),使新項目應(yīng)用更加靈便便捷。本文列舉了搭建Python查詢參數(shù)的4種普遍方法,所需要的可以了解一下  小伙伴們好,在平時的撰寫Python腳本制作的過程當(dāng)中,我們通常需要根據(jù)查詢參數(shù)傳到某些自變量主要參數(shù),使新項目應(yīng)用更加靈便便捷  本文我們將列舉出搭建Python查詢參數(shù)的4種普遍方法  分別是:  內(nèi)...

    89542767 評論0 收藏0
  • 自制小工具大大加速MySQL SQL語句優(yōu)(附源碼)

    摘要:如果語句中使用了子查詢集合操作臨時表等情況,會給列帶來很大的復(fù)雜性。會遞歸執(zhí)行這些子查詢,把結(jié)果放在臨時表里。查詢優(yōu)化器從中所選擇使用的索引。該字段顯示了查詢優(yōu)化器通過系統(tǒng)收集的統(tǒng)計信息估算出來的結(jié)果集記錄條數(shù)。 引言 優(yōu)化SQL,是DBA常見的工作之一。如何高效、快速地優(yōu)化一條語句,是每個DBA經(jīng)常要面對的一個問題。在日常的優(yōu)化工作中,我發(fā)現(xiàn)有很多操作是在優(yōu)化過程中必不可少的步驟。然...

    Hujiawei 評論0 收藏0
  • Bottle框架中的裝飾器類和描述符應(yīng)用

    摘要:最近在閱讀微型框架的源碼,發(fā)現(xiàn)了中有一個既是裝飾器類又是描述符的有趣實現(xiàn)。所以第三版的代碼可以這樣寫第三版的代碼沒有使用裝飾器,而是使用了描述符這個技巧。更大的問題來自如何將描述符與裝飾器結(jié)合起來,因為是一個類而不是方法。 最近在閱讀Python微型Web框架Bottle的源碼,發(fā)現(xiàn)了Bottle中有一個既是裝飾器類又是描述符的有趣實現(xiàn)。剛好這兩個點是Python比較的難理解,又混合在...

    Panda 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<