argparse包用於解釋命令列引數。這裡給出幾個常用的方法。
# 建立解析器物件
# @pwww.cppcns.comara: description:描述資訊
arg = argumentparser(description='an example for python package argparse~')
# 新增引數
# @para: 後面舉例子再細說
arg.add_argument()
# 解析引數
# @return: 返回的arg是乙個物件,裡面的屬性和屬性值來自命令列
arg = arg.parse_args()
# 建立互斥組
# @description:互斥組內的引數不能同時出現
arg.add_mutually_exclusive_group()
基本使用
import argparse
arg = argparse.argumentparser(description='an example for python package argparse~')
arg = arg.parse_args()
不新增任何引數,cmd執行結果:
預設可以使用-h或者–help檢視引數列表。因為沒有新增任何引數,因此,這裡只有乙個-h。可以看到description的描述資訊也可以在-h下列印出來。
新增引數
import ar程式設計客棧gparse
arg = argparse.argumentparser(description='an example for python package argparse~')
arg.add_argument('a')
arg = arg.parse_args()
print("arg 的內的引數{}".format(arg.a))
args = vars(arg)
print("arg 的內的引數{}".format(args['a']))
新增引數後,需要在執行後面帶上引數,否則報錯。
新增可選引數
前面新增的引數,一定要傳入引數值。
import argparse
arg = argparse.argumentparser(description='an examplvfjimsnaine for python package argparse~')
arg.add_argument('-a','-all',help='add all para!')
arg = arg.parse_args()
print("arg 的內的引數{}".format(arg.a))
args = vars(arg)
print("arg 的內的引數{}".format(args['a']))
只需在引數前加上-(用於乙個字母,例如-h)或者--(用於多個字母,例如--help),即可選擇是否需要傳入引數。
但是如果指定了引數,後面一定要跟上引數值,否則會報錯。例如:
在新增引數的時候,加上action="store_true",
import argparse
arg = argparse.argumentparser(description='an example for python package argparse~')
arg.add_argument('-a','-all',help='add all para!',action="store_true")
arg = arg.parse_args()
print("arg 的內的引數{}".format(arg.a))
args = vars(arg)
print("arg 的內的引數{}".format(args['a']))
當我們帶上-a執行,在**裡得到的a值為true,不帶則為false。這個是不是和-h類似,當我們帶上-h,裡面有個if判斷,就把相關資訊print出來了。
固定型別type
import argparse
arg = argparse.argumentparser(description='an example for python package argparse~')
arg.add_argument('-a','-all',type = int ,help='add all para!',action="store_true")
arg = arg.parse_args()
print("arg 的內的引數{}".format(arg.a))
args = vars(arg)
print("arg 的內的引數{}".format(args['a']))
可選值和預設值
import argparse
arg = argparse.argumentparser(description='an example for python package argparse~')
arg.add_argument('-a','-all',type = int ,help='add all para!',choices=[0,1,2,3],default='3')
arg = arg.parse_args()
print("arg 的內的引數{}".format(arg.a))
args = vars(arg)
print"arg 的內的引數{}".format(args['a']))
互斥引數
import argparse
= argparse.argumentparser(description='an example for python package argparse~')
gro = arg.add_mutually_exclusive_group()
gro.add_argument('-a','-all',help='add all para!')
gro.add_argument('-b','-ball',help='add ball para!')
arg = arg.parse_args()
args = vars(arg)
if args.get('a',none):
print("arg 的內的引數b:{}".format(args['a']))
if args.get('b', none):
print("arg 的內的引數b:{}".format(args['b']))
可以看出,在互斥組內,引數不可以同時出現,僅可出現乙個或者都不出現。所以在互斥組內新增的引數必須是可選引數,也就是以-或者--開頭的。
Python解析模組argparse
初學python,今天在偶然間了解到python中有個解析模組argparse,其實此解析模組和linuxc下的getopt 的功能大同小異,寫此篇博文的目的只是為了做個筆記 熟悉linux系統命令的人都知道,每個命令後面都可以跟許多引數來實現不同的功能,拿最簡單的ls來舉例吧 當我們輸入ls是終端...
python學習 argparse模組
這篇教程簡明地介紹了python標準庫推薦使用的命令列引數解析模組 argparse的使用。基本概念 在這篇教程中我們通過乙個常見的ls命令來展示argparse的功能。ls cpython devguide prog.py pypy rm unused function.patch ls pypy...
argparse命令列解析包
是python的乙個命令列解析包,非常編寫可讀性非常好的程式,一般有3個步驟 定位引數傳值的方法 直接用 引數名 或者 引數名 雙引號或單引號均可 import argparse parser argparse.argumentparser parser.add argument integer t...