argparse模塊的使用 | python
用于接收python命令行下的命令行參數(shù),并進(jìn)行多種功能解析的模塊
基本使用步驟:
定義一個文件名為test_parse.py的文件,內(nèi)容如下:
from argparse import ArgumentParser # 其中最常用的一個模塊:ArgumentParser
# 定義一個命令行參數(shù)解析器對象
parser = ArgumentParser()
# 為命令行添加一個參數(shù),參數(shù)名為argname1
parser.add_argument("argname1")
# 返回命令行參數(shù)的集合的某種數(shù)據(jù)結(jié)構(gòu)對象,args里存放了所有添加的命令行參數(shù)
args = parser.parse_args()
# 打印測試命令行參數(shù)輸入是否有效
print("輸入的命令行參數(shù)為", args.argname1)
命令行輸入:
python test_parse.py 你好
運(yùn)行結(jié)果:
輸入的命令行參數(shù)為你好
為命令行參數(shù)添加幫助信息和數(shù)據(jù)類型
定義一個文件名為test_parse.py的文件,內(nèi)容如下:
from argparse import ArgumentParser # 其中最常用的一個模塊:ArgumentParser
# 定義一個命令行參數(shù)解析器對象
parser = ArgumentParser()
# 為命令行添加一個參數(shù),參數(shù)名為argname1,help=是幫助信息,type=是數(shù)據(jù)類型
parser.add_argument("argname1", help="argname1是參數(shù),type=int)
# 返回命令行參數(shù)的集合的某種數(shù)據(jù)結(jié)構(gòu)對象,args里存放了所有添加的命令行參數(shù)
args = parser.parse_args()
# 打印測試命令行參數(shù)輸入是否有效
print("輸入的命令行參數(shù)為", args.argname1)
添加數(shù)據(jù)類型之后,命令行的輸入會被記錄為指定的數(shù)據(jù)類型,默認(rèn)是字符串類型。
添加的help=參數(shù),當(dāng)命令行輸入時,添加 -h 選項可以顯示出來。
命令行分別輸入:
python test_parse.py -h
運(yùn)行結(jié)果:
...
argname1 argname1是參數(shù)
...
指定輸入?yún)?shù)命
當(dāng)我們只想給某幾個參數(shù)名輸入?yún)?shù)時
定義一個文件名為test_parse.py的文件,內(nèi)容如下:
from argparse import ArgumentParser # 其中最常用的一個模塊:ArgumentParser
# 定義一個命令行參數(shù)解析器對象
parser = ArgumentParser()
# 為命令行添加一個參數(shù),參數(shù)名為argname1,help=是幫助信息,type=是數(shù)據(jù)類型
# 在參數(shù)名前面加兩個 -- 就可以指定參數(shù)名來輸入?yún)?shù)
parser.add_argument("--argname1", help="argname1是參數(shù)", type=int)
parser.add_argument("--argname2", help="argname2時參數(shù)", type=int)
# 返回命令行參數(shù)的集合的某種數(shù)據(jù)結(jié)構(gòu)對象,args里存放了所有添加的命令行參數(shù)
args = parser.parse_args()
# 打印測試命令行參數(shù)輸入是否有效
if args.argname1:
print("argname1為", args.argname1)
if args.argname2:
print("argname2為", args.argname2)
命令行輸入
python test_parse.py --argname1 12
測試輸出
argname1為 12
選項命令的引入(進(jìn)階篇)
設(shè)置開關(guān)量
由上面的基礎(chǔ),下面的代碼,就以片段的形式給出。
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
輸出結(jié)果
argname1 is True
argname1 is True
說明:當(dāng)命令行參數(shù)輸入 -a 或者 --argname1時,會將action的值給命令行參數(shù),即此時argname1=True。否則argname1=False。
設(shè)置參數(shù)的命名空間
# 參數(shù)dest設(shè)置命名空間,之后該參數(shù)就需要使用_argname_space來表示,而不能使用argname1
parser.add_argument("-a", "--argname1", dest="_argname_space")
args = parser.parse_args()
print("輸入為:", args._argname_space)
命令行輸入
# 這種命名空間的用法應(yīng)該就是將命令行參數(shù)于實際參數(shù)名分割開來
python test_parse.py -a 12
輸出為
輸入為: 12
使用了命名空間之后,就需要索引其命名空間來尋找對應(yīng)的參數(shù)值。
其他選項:…
來源:https://www./content-1-383551.html
|