python argparse 模塊命令行參數(shù)用法及說明
argparse 是 python 的一個命令行解析包,可根據(jù)需要編寫高可讀性的程序。
網(wǎng)上的許多教程較為冗長和散漫,沒有達(dá)到精練好掌握的目的,本文針對項目中對 argparse 的用法,用實例對各個參數(shù)進行講解,力求達(dá)到讓讀者秒懂的目的。
先上代碼
import argparse
if __name__ == '__main__':
# 創(chuàng)建命令行解析器句柄,并自定義描述信息
parser = argparse.ArgumentParser(description='test the argparse package')
# 定義必選參數(shù) positionArg
parser.add_argument('positionArg')
# 定義可選參數(shù)verbosity1
parser.add_argument('--verbosity1', '-v1', help='test the optional arguments')
# 定義可選參數(shù)verbosity2,并通過設(shè)定store_true表示該選項不需要接收參數(shù),若不設(shè)action,則默認(rèn)是需要接收參數(shù)的,否則報錯
parser.add_argument('--verbosity2', '-v2', action='store_true', help='test the action arg')
# 指定參數(shù)類型(默認(rèn)是 str)
parser.add_argument('x', type=int, help='test the type')
# 設(shè)置參數(shù)的可選范圍
parser.add_argument('--verbosity3', '-v3', type=str, choices=['one', 'two', 'three', 'four'], help='test choices')
# 設(shè)置參數(shù)默認(rèn)值
parser.add_argument('--verbosity4', '-v4', type=str, choices=['one', 'two', 'three'], default=1, help='test default value')
args = parser.parse_args() # 返回一個命名空間
print(args)
params = vars(args) # 返回 args 的屬性和屬性值的字典
for k, v in params.items():
print(k, v)代碼示例中寫上了詳細(xì)的注釋,觀看注釋也可了解各大概。
下面針對一些特殊點再作詳述
action='store_true'
表示該選項不需要接收參數(shù),直接設(shè)定該參數(shù)為 true,當(dāng)然,如果不指定 -v2, 則該參數(shù)就是 false。
但如果把 action=’store_true’ 去掉,就必須給 -v2 指定一個值。
程序用法幫助
比如該程序命名為 testArg.py,則可在命令行執(zhí)行如下語句:
python3 testArg.py -h
運行得到函數(shù)的用法幫助文檔:

完整的命令行參數(shù)執(zhí)行命令和效果如下:

當(dāng)然,參數(shù)的值也可寫成賦值形式,如下所示(等同于上圖中的命令):
python3 testArg.py hehe -v1=verb1 --verbosity2 1 -v3=one -v4=two
中間打印的 Namespace 為參數(shù)解析返回的命名空間。
如此,結(jié)合實例,非常簡潔易懂,分享之。當(dāng)然還有一些其他的用法,此處只列出了一些最常用的用法,在使用中如有需要,可自行查閱文檔。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python進階之多線程的實現(xiàn)方法總結(jié)
在python中主要有兩種實現(xiàn)多線程的方式:通過threading.Thread?()?方法創(chuàng)建線程和通過繼承?threading.Thread?類的繼承重寫run方法,接下來我們分別說一下多線程的兩種實現(xiàn)形式吧2023-04-04
Python list和str互轉(zhuǎn)的實現(xiàn)示例
這篇文章主要介紹了Python list和str互轉(zhuǎn)的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11

