解讀Python腳本的常見參數(shù)獲取和處理方式
Python腳本常見參數(shù)獲取和處理
平常寫 python 腳本時會有一些從命令行獲取參數(shù)的需求,這篇文章記錄下常見的參數(shù)獲取和處理方式。
1. 使用args獲取參數(shù)
使用 sys.argv[] 可以接收腳本的參數(shù),得到一個列表類型,列表第一個元素是腳本名稱,通過 sys.argv[1:] 得到命令行傳進(jìn)來的所有參數(shù)。
代碼示例:
test_args.py import sys argv = sys.argv[1:] print("args==argv==", argv)
代碼執(zhí)行效果:
2. 使用getopt處理命令行傳入的參數(shù)
getopt 是專門用來處理命令行參數(shù),使用格式大概為getopt(args, shortopts, longopts = []),其中參數(shù) args 一般是sys.argv[1:], shortopts 是短格式參數(shù) (-),longopts 是長格式參數(shù)(–)
代碼示例:
''' 遇到問題沒人解答?小編創(chuàng)建了一個Python學(xué)習(xí)交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學(xué)習(xí)教程和PDF電子書! ''' test_args.py argv = sys.argv[1:] print("args==argv==", argv) options, args = getopt.getopt(sys.argv[1:], "hd:n:", ["help", "date=", "name="]) print("args==getopt==",options, "options=====", args)
代碼執(zhí)行結(jié)果:
3. 標(biāo)準(zhǔn)庫argsparse
argsparse 是 python 的命令行解析的標(biāo)準(zhǔn)模塊,內(nèi)置于python,不需要安裝。這個庫可以讓我們直接在命令行中就可以向程序中傳入?yún)?shù)并讓程序運(yùn)行。
代碼示例:
''' 遇到問題沒人解答?小編創(chuàng)建了一個Python學(xué)習(xí)交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學(xué)習(xí)教程和PDF電子書! ''' test_args.py import argparse parser = argparse.ArgumentParser(description='ArgUtils') parser.add_argument('-d', type=str, default='000000', help="data date") parser.add_argument('-a', type=str, default=None, help="agent_id_from_platform id") args = parser.parse_args()
在 add_argument函數(shù)中,第一個參數(shù)是腳本參數(shù)傳入名稱;type 是限制傳入?yún)?shù)的類型;default 為參數(shù)設(shè)置默認(rèn)值;required 設(shè)置參數(shù)是否為必傳。
代碼執(zhí)行效果:
總得來說,args兼容性比較強(qiáng),可以接收任意方式的傳參,getopt 對傳入?yún)?shù)進(jìn)行了分組,argparse 則使傳入的參數(shù)可讀性更高,支持的功能多一些。
Python腳本獲取外部參數(shù)
方式1
使用sys模塊獲取參數(shù),比較簡單
import sys print("python文件名: ", sys.argv[0]) print("第1個參數(shù): ", sys.argv[1]) print("第2個參數(shù): ", sys.argv[2]) # 傳參方式 python test.py arg1 arg2
方式2
如果參數(shù)較多,參數(shù)有默認(rèn)值,建議使用argparse模塊,閱讀性更高。
可以定義參數(shù)類型、默認(rèn)值。
import argparse # 設(shè)置參數(shù)名 parser = argparse.ArgumentParser() parser.add_argument("-username", dest="username", type=str) parser.add_argument("-password", dest="password", type=str) parser.add_argument("-date", dest="date", type=str, default='2021-01-01') # 獲取參數(shù) args = parser.parse_args() username = args.username password = args.password date = args.date # 傳參方式 python test.py -username=xxx -password=xxx
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python實(shí)現(xiàn)GIF動圖以及視頻卡通化詳解
本文主要介紹了如何使用Python中的animegan2-pytorch實(shí)現(xiàn)動圖以及視頻的卡通化效果,文中的代碼具有一定的學(xué)習(xí)價(jià)值,需要的朋友可以參考一下2021-12-12我們?yōu)槭裁匆獪p少Python中循環(huán)的使用
這篇文章主要介紹了我們?yōu)槭裁匆獪p少Python中循環(huán)的使用,我將闡述 Python 提供的一些簡單但是非常有用的結(jié)構(gòu),一些小技巧以及一些我在數(shù)據(jù)科學(xué)工作中遇到的案例。我將討論 Python 中的 for 循環(huán),以及如何盡量避免使用它們,需要的朋友可以參考下2019-07-07Python下實(shí)現(xiàn)的RSA加密/解密及簽名/驗(yàn)證功能示例
這篇文章主要介紹了Python下實(shí)現(xiàn)的RSA加密/解密及簽名/驗(yàn)證功能,結(jié)合具體實(shí)例形式分析了Python中RSA加密、解密的實(shí)現(xiàn)方法及簽名、驗(yàn)證功能的使用技巧,需要的朋友可以參考下2017-07-07搭建?Selenium+Python開發(fā)環(huán)境詳細(xì)步驟
這篇文章主要介紹了搭建?Selenium+Python開發(fā)環(huán)境詳細(xì)步驟的相關(guān)資料,需要的朋友可以參考下2022-10-10python導(dǎo)包的幾種方法(自定義包的生成以及導(dǎo)入詳解)
這篇文章主要介紹了python導(dǎo)包的幾種方法(自定義包的生成以及導(dǎo)入詳解),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07