argparse 是 python 的乙個命令列解析包,可根據需要編寫高可讀性的程式。網上的許多教程較為冗長和散漫,沒有達到精練好掌握的目的,本文針對專案中對 argparse 的用法,用例項對各個引數進行講解,力求達到讓讀者秒懂的目的。
先上**:
import argparse
if __name__ == '__main__':
# 建立命令列解析器控制代碼,並自定義描述資訊
parser = argparse.argumentparser(description='test the argparse package')
# 定義必選引數 positionarg
parser.add_argument('positionarg')
# 定義可選引數verbosity1
parser.add_argument('--verbosity1', '-v1', help='test the optional arguments')
# 定義可選引數verbosity2,並通過設定store_true表示該選項不需要接收引數,若不設action,則預設是需要接收引數的,否則報錯
parser.add_argument('--verbosity2', '-v2', action='store_true', help='test the action arg')
# 指定引數型別(預設是 str)
parser.add_argument('x', type=int, help='test the type')
# 設定引數的可選範圍
parser.add_argument('--verbosity3', '-v3', type=str, choices=['one', 'two', 'three', 'four'], help='test choices')
# 設定引數預設值
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)
**示例中寫上了詳細的注釋,**注釋也可了解各大概。下面針對一些特殊點再作詳述:
action=』store_true』
表示該選項不需要接收引數,直接設定該引數為 true,當然,如果不指定 -v2, 則該引數就是 false。但如果把 action=』store_true』 去掉,就必須給 -v2 指定乙個值。
程式用法幫助
比如該程式命名為 testarg.py,則可在命令列執行如下語句:
python3 testarg.py -h
執行得到函式的用法幫助文件:
完整的命令列引數執行命令和效果如下:
當然,引數的值也可寫成賦值形式,如下所示(等同於上圖中的命令):
python3 testarg.py hehe -v1
=verb1 --verbosity2 1
-v3=one -v4
=two
中間列印的 namespace 為引數解析返回的命名空間。
如此,結合例項,非常簡潔易懂,分享之。當然還有一些其他的用法,此處只列出了一些最常用的用法,在使用中如有需要,可自行查閱文件。
python argparse舉例說明
目的 想從命令列通過命令來指定是否執行程式中的某個函式 模組 更新關於另乙個例子 這裡只舉例說明 原因是看了很多博文之後,還是沒有解決筆者上面說的那個問題,即如何從命令列決定是否執行某段函式問題 設定乙個引數,名為foreground,簡寫f 即在終端可以輸入 foreground也可以輸入 f。跟...
Python argparse模組的使用
最近在看github上的mmskeleton專案時,遇到了python中的argparse模組。於是查閱了一下資料 根據官方給出的argparsetutorial,該模組的作用在於對命令列進行解析。英文比較好的朋友,建議直接看tutorial,其中的解釋還是很清楚的。看英文比較頭疼的朋友,也可以參考...
python argparse轉換為字典
在使用argparse定義程式引數時,常規用法如下 import argparse parser argparse.argumentparser parser.add argument epochs type int default 5000 help train epochs.parser.add...