argparse子產品的使用 | python
用于接收python指令行下的指令行參數,并進行多種功能解析的子產品
基本使用步驟:
定義一個檔案名為test_parse.py的檔案,内容如下:
from argparse import ArgumentParser # 其中最常用的一個子產品:ArgumentParser
# 定義一個指令行參數解析器對象
parser = ArgumentParser()
# 為指令行添加一個參數,參數名為argname1
parser.add_argument("argname1")
# 傳回指令行參數的集合的某種資料結構對象,args裡存放了所有添加的指令行參數
args = parser.parse_args()
# 列印測試指令行參數輸入是否有效
print("輸入的指令行參數為", args.argname1)
指令行輸入:
python test_parse.py 你好
運作結果:
輸入的指令行參數為你好
為指令行參數添加幫助資訊和資料類型
定義一個檔案名為test_parse.py的檔案,内容如下:
from argparse import ArgumentParser # 其中最常用的一個子產品:ArgumentParser
# 定義一個指令行參數解析器對象
parser = ArgumentParser()
# 為指令行添加一個參數,參數名為argname1,help=是幫助資訊,type=是資料類型
parser.add_argument("argname1", help="argname1是參數,type=int)
# 傳回指令行參數的集合的某種資料結構對象,args裡存放了所有添加的指令行參數
args = parser.parse_args()
# 列印測試指令行參數輸入是否有效
print("輸入的指令行參數為", args.argname1)
添加資料類型之後,指令行的輸入會被記錄為指定的資料類型,預設是字元串類型。
添加的help=參數,當指令行輸入時,添加 -h 選項可以顯示出來。
指令行分别輸入:
python test_parse.py -h
運作結果:
...
argname1 argname1是參數
...
指定輸入參數命
當我們隻想給某幾個參數名輸入參數時
定義一個檔案名為test_parse.py的檔案,内容如下:
from argparse import ArgumentParser # 其中最常用的一個子產品:ArgumentParser
# 定義一個指令行參數解析器對象
parser = ArgumentParser()
# 為指令行添加一個參數,參數名為argname1,help=是幫助資訊,type=是資料類型
# 在參數名前面加兩個 -- 就可以指定參數名來輸入參數
parser.add_argument("--argname1", help="argname1是參數", type=int)
parser.add_argument("--argname2", help="argname2時參數", type=int)
# 傳回指令行參數的集合的某種資料結構對象,args裡存放了所有添加的指令行參數
args = parser.parse_args()
# 列印測試指令行參數輸入是否有效
if args.argname1:
print("argname1為", args.argname1)
if args.argname2:
print("argname2為", args.argname2)
指令行輸入
python test_parse.py --argname1 12
測試輸出
argname1為 12
選項指令的引入(進階篇)
設定開關量
由上面的基礎,下面的代碼,就以片段的形式給出。
parser.add-argument("-a", "--argname1", action="store_true")
args = parser.parse_args()
if args.argname1:
print("argname1 is ", args.argname1)
指令行分别輸入
python test_parse.py -a
python test_parse.py --argname1
python test_parse.py
輸出結果
argname1 is True
argname1 is True
說明:當指令行參數輸入 -a 或者 --argname1時,會将action的值給指令行參數,即此時argname1=True。否則argname1=False。
設定參數的命名空間
# 參數dest設定命名空間,之後該參數就需要使用_argname_space來表示,而不能使用argname1
parser.add_argument("-a", "--argname1", dest="_argname_space")
args = parser.parse_args()
print("輸入為:", args._argname_space)
指令行輸入
# 這種命名空間的用法應該就是将指令行參數于實際參數名分割開來
python test_parse.py -a 12
輸出為
輸入為: 12
使用了命名空間之後,就需要索引其命名空間來尋找對應的參數值。