在平時的撰寫Python腳本制作的過程當中,我們通常需要根據查詢參數傳到某些自變量基本參數,使新項目應用更加靈便便捷。本文列舉了搭建Python查詢參數的4種普遍方法,所需要的可以了解一下小伙伴們好,在平時的撰寫Python腳本制作的過程當中,我們通常需要根據查詢參數傳到某些自變量基本參數,使新項目應用更加靈便便捷
本文我們將列舉出搭建Python查詢參數的4種普遍方法
分別是:
內嵌sys.argv控制模塊
內嵌argparse控制模塊
內嵌getopt模塊
第三方平臺依賴庫click
1.sys.argv
搭建查詢參數非常簡單、普遍的方法是運用內嵌的「sys.argv」控制模塊
它是把基本參數以一種規范有序目錄傳到,因而在使用過程中傳參次序務必固定不動
因而,這種方法適用基本參數數量少且情景固定工程中
importsys if__name__=='__main__': #獲得參數列表 #留意:sys.argv[0]意味著第一位基本參數,即:腳本制作名字「1_sys.argv.py」 #別的參數列表 args=sys.argv[1:] #基本參數數量 args_length=len(sys.argv)ifsys.argvelse0 print("清除運作主文件基本參數,別的參數列表為:",args) print("基本參數數量:",args_length) #應用 #python31_sys.argv.pyarg1arg2 #清除運作主文件基本參數,別的參數列表為:[arg1,arg1] #基本參數數量:3
需注意,在腳本制作中以「sys.argv」獲得的參數列表中,第一位基本參數意味著腳本制作主文件目錄
2.argparse
內嵌的argparse控制模塊能夠比較輕松地編寫出友善的查詢參數腳本制作,而且它會一鍵生成協助操作手冊,在客戶給程序流程傳到失效基本參數時可以拋出去清楚的錯誤報告
官方文檔
使用這些搭建查詢參數包括3個階段:
搭建基本參數分析對象添加基本參數加上基本參數分析基本參數
1.搭建argv分析總體目標
importargparse ... #建立一個argv分析總體目標 parser=argparse.ArgumentParser(description='argv') ...
2.加上argv
務必注意的是,--arg1用以特定主要參數名字,-a1意味著dest總體目標變量類型(縮寫)
... #設定3個主要參數 #主要參數1:arg1,整形,非必要調用方法 #主要參數2:arg2,字符串數組,非必要調用方法,包括初始值「xag」 #主要參數3:arg3,字符串類型,務必傳到的主要參數 parser.add_argument('--arg1','-a1',type=int,help='主要參數1,非必要主要參數') parser.add_argument('--arg2','-a2',type=str,help='主要參數2,非必要主要參數,包括初始值',default='xag') parser.add_argument('--arg3','-a3',type=str,help='主要參數3,務必主要參數',required=True) ...
3.分析出變量值
... #分析主要參數,獲得每一個argv(Namespace),隨后變為詞典 args=vars(parser.parse_args()) #獲得全部主要參數 print("全部argv為:") forkeyinargs: print(f"argv名:{key},變量值:{args[key]}") ... 使用時,大家就可以用「-h/--help」指令主要參數查詢幫助文件 #查詢argv幫助文件 python32_argparse.py--help #或 python32_argparse.py-h 上邊使用的3個主要參數,參數arg1、arg2非必要傳值,arg3務必傳值,此外參數arg2特定了初始值 #參數arg3務必,參數arg1和參數arg2非必要,在其中參數arg2設置權限初始值 #調用方法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 #調用方法arg1、arg3 xingagxingagdeMacBook-Proargs%python32_argparse.py-a1111-a3123 全部argv為: argv名:arg1,變量值:111 argv名:arg2,變量值:xag argv名:arg3,變量值:123 #調用方法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中的內嵌標準模塊,需要結合sys.argv控制模塊,立即分析腳本運行時主要參數
應用文件格式:getopt(args,shortopts,longopts=[])
在其中
args
參數列表,能通過sys.argv獲得,可以參考一下上邊
shortopts短主要參數所組成的字符串數組
界定短主要參數,假如主要參數有值,必須要在短主要參數后增加1個「:」標記
傳參使用方法:-n23
longopts長參數列表
界定長參數列表時,假如某一主要參數有值,必須要在短主要參數后增加1個「=」標記
傳參使用方法:–port8080
這兒以傳到數據庫服務器主要參數為例子(主要參數包括ip、登錄名、登陸密碼、數據庫系統名字)進行介紹
fromgetoptimportgetopt importsys #獲取參數 #sys.argv[1:]:獲得除腳本制作文件夾名稱以外全部argv #opts:存在全部選擇項以及輸入值的數組目錄 #args:清除有價值的鍵入之后剩余部分 opts,args=getopt(sys.argv[1:],'i:u:p:d:',['ip=','user=','pwd=','db=']) #獲得變量值 #短主要參數 #python34_getopt.py-i127.0.0.1-uroot-p123456-dmysqldb #長主要參數 #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("主要參數ip:",ip) user_pre=[item[1]foriteminoptsifitem[0]in('-u','--user')] user=user_pre[0]iflen(user_pre)>0elseNone print("主要參數user:",user) pwd_pre=[item[1]foriteminoptsifitem[0]in('-p','--pwd')] pwd=pwd_pre[0]iflen(pwd_pre)>0elseNone print("主要參數pwd:",pwd) db_pre=[item[1]foriteminoptsifitem[0]in('-d','--db')] db=db_pre[0]iflen(db_pre)>0elseNone print("主要參數db:",db) 在運行腳本時,我們能運用「短主要參數」或「長主要參數」的方式進行傳送 #檢測 #短主要參數 python34_getopt.py-i127.0.0.1-uroot-p123456-dmysqldb #長主要參數 python34_getopt.py--ip127.0.0.1--userroot--pwd123456--dbmysqldb
4.click
click作為第三方依賴庫,它為命令行工具封裝了大量的方法,可以非常方便實現命令行參數
項目地址
首先,我們需要安裝依賴庫click
import click #安裝依賴 #pip3 install-U click click.command() click.option('--arg1',default='111',help='參數arg1,默認值為「111」') click.option('--arg2',type=int,help='參數arg2') click.option('--arg3',type=str,help='參數arg3') def start(arg1,arg2,arg3): """ 基于參數arg1、參數arg2、參數arg3運行項目 :param arg1: :param arg2: :param arg3: :return: """ print("參數arg1值為:",arg1) print("參數arg2值為:",arg2) print("參數arg3值為:",arg3) if __name__=='__main__': start() 然后,在主運行函數上通過裝飾器配置參數即可 比如,上面就定義了3個命令行參數arg1、arg2、arg3,并設置了參數的類型及默認值 最后,在運行腳本時只需要按參數設定傳遞對應的值即可 #不包含參數 xingag xingagdeMacBook-Pro args%python3 3_click.py 參數arg1值為:111 參數arg2值為:None 參數arg3值為:None #包含參數arg1 xingag xingagdeMacBook-Pro args%python3 3_click.py--arg1 test1 參數arg1值為:test1 參數arg2值為:None 參數arg3值為:None #包含參數arg1、arg2 #注意:arg2的參數類型為整形,傳入的參數必須能轉為整形,否則會報錯 xingag xingagdeMacBook-Pro args%python3 3_click.py--arg1 test1--arg2 222 參數arg1值為:test1 參數arg2值為:222 參數arg3值為:None #包含參數arg1、arg2、arg3 xingag xingagdeMacBook-Pro args%python3 3_click.py--arg1 test1--arg2 222--arg3 test3 參數arg1值為:test1 參數arg2值為:222 參數arg3值為:test3
綜上所述,這篇文章就給大家介紹到這里了。希望可以給大家帶來幫助。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/129076.html
在平時的撰寫Python腳本制作的過程當中,我們通常需要根據查詢參數傳到某些自變量主要參數,使新項目應用更加靈便便捷。本文列舉了搭建Python查詢參數的4種普遍方法,所需要的可以了解一下 小伙伴們好,在平時的撰寫Python腳本制作的過程當中,我們通常需要根據查詢參數傳到某些自變量主要參數,使新項目應用更加靈便便捷 本文我們將列舉出搭建Python查詢參數的4種普遍方法 分別是: 內...
摘要:如果語句中使用了子查詢集合操作臨時表等情況,會給列帶來很大的復雜性。會遞歸執行這些子查詢,把結果放在臨時表里。查詢優化器從中所選擇使用的索引。該字段顯示了查詢優化器通過系統收集的統計信息估算出來的結果集記錄條數。 引言 優化SQL,是DBA常見的工作之一。如何高效、快速地優化一條語句,是每個DBA經常要面對的一個問題。在日常的優化工作中,我發現有很多操作是在優化過程中必不可少的步驟。然...
摘要:最近在閱讀微型框架的源碼,發現了中有一個既是裝飾器類又是描述符的有趣實現。所以第三版的代碼可以這樣寫第三版的代碼沒有使用裝飾器,而是使用了描述符這個技巧。更大的問題來自如何將描述符與裝飾器結合起來,因為是一個類而不是方法。 最近在閱讀Python微型Web框架Bottle的源碼,發現了Bottle中有一個既是裝飾器類又是描述符的有趣實現。剛好這兩個點是Python比較的難理解,又混合在...
閱讀 919·2023-01-14 11:38
閱讀 891·2023-01-14 11:04
閱讀 750·2023-01-14 10:48
閱讀 2039·2023-01-14 10:34
閱讀 956·2023-01-14 10:24
閱讀 833·2023-01-14 10:18
閱讀 506·2023-01-14 10:09
閱讀 583·2023-01-14 10:02