用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起作用。