天天看點

argparse子產品的使用 | pythonargparse子產品的使用 | python

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
           

使用了命名空間之後,就需要索引其命名空間來尋找對應的參數值。

其他選項:…