解讀Python腳本的常見參數(shù)獲取和處理方式
Python腳本常見參數(shù)獲取和處理
平常寫 python 腳本時會有一些從命令行獲取參數(shù)的需求,這篇文章記錄下常見的參數(shù)獲取和處理方式。
1. 使用args獲取參數(shù)
使用 sys.argv[] 可以接收腳本的參數(shù),得到一個列表類型,列表第一個元素是腳本名稱,通過 sys.argv[1:] 得到命令行傳進來的所有參數(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學習交流QQ群:778463939
尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和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. 標準庫argsparse
argsparse 是 python 的命令行解析的標準模塊,內(nèi)置于python,不需要安裝。這個庫可以讓我們直接在命令行中就可以向程序中傳入?yún)?shù)并讓程序運行。
代碼示例:
'''
遇到問題沒人解答?小編創(chuàng)建了一個Python學習交流QQ群:778463939
尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和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ù)設置默認值;required 設置參數(shù)是否為必傳。
代碼執(zhí)行效果:

總得來說,args兼容性比較強,可以接收任意方式的傳參,getopt 對傳入?yún)?shù)進行了分組,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ù)有默認值,建議使用argparse模塊,閱讀性更高。
可以定義參數(shù)類型、默認值。
import argparse
# 設置參數(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)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
我們?yōu)槭裁匆獪p少Python中循環(huán)的使用
這篇文章主要介紹了我們?yōu)槭裁匆獪p少Python中循環(huán)的使用,我將闡述 Python 提供的一些簡單但是非常有用的結(jié)構(gòu),一些小技巧以及一些我在數(shù)據(jù)科學工作中遇到的案例。我將討論 Python 中的 for 循環(huán),以及如何盡量避免使用它們,需要的朋友可以參考下2019-07-07
Python下實現(xiàn)的RSA加密/解密及簽名/驗證功能示例
這篇文章主要介紹了Python下實現(xiàn)的RSA加密/解密及簽名/驗證功能,結(jié)合具體實例形式分析了Python中RSA加密、解密的實現(xiàn)方法及簽名、驗證功能的使用技巧,需要的朋友可以參考下2017-07-07
搭建?Selenium+Python開發(fā)環(huán)境詳細步驟
這篇文章主要介紹了搭建?Selenium+Python開發(fā)環(huán)境詳細步驟的相關(guān)資料,需要的朋友可以參考下2022-10-10

