电竞比分网-中国电竞赛事及体育赛事平台

分享

argparse模塊的使用 | python

 印度阿三17 2019-08-09

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

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多