argparse模組中的action引數
阿新 • • 發佈:2018-11-11
用argparse模組讓python指令碼接收引數時,對於True/False型別的引數,向add_argument方法中加入引數action=‘store_true’/‘store_false’。
顧名思義,store_true就代表著一旦有這個引數,做出動作“將其值標為True”,也就是沒有時,預設狀態下其值為False。反之亦然,store_false也就是預設為True,一旦命令中有此引數,其值則變為False。
>>> parser = argparse.ArgumentParser()
>>> parser.add_argument( '--foo', action='store_true')
>>> parser.add_argument('--bar', action='store_false')
>>> parser.add_argument('--baz', action='store_false')
>>> parser.parse_args('--foo --bar'.split())
Namespace(bar=False, baz=True, foo=True)
本人測試的另一個指定default的例子:
程式碼如下:
import argparse
parser = argparse.ArgumentParser(description="description")
parser.add_argument('--pa','-a',action='store_true')
parser.add_argument('--pb','-b',action="store_true",default=True)
parser.add_argument('--pc','-c',action="store_true",default=False)
parser.add_argument('--pd','-d',action='store_false')
parser. add_argument('--pe','-e',action="store_false",default=True)
parser.add_argument('--pf','-f',action="store_false",default=False)
args = parser.parse_args()
print(args)
輸出結果如下:
分析:
可以看到如果指定引數出現,則action_true/false起作用,如果引數不出現default起作用。
參考博文: