我试图使用argparse模块使我的Python程序接受灵活的命令行参数。我想传递一个简单的布尔标志,并且如果为
考虑以下内容。
True
或False
则执行代码中适当的部分。考虑以下内容。
import argparse
parser = argparse.ArgumentParser(prog='test.py',formatter_class=argparse.ArgumentDefaultsHelpFormatter)
parser.add_argument('-boolflag', type=bool, default=True)
parser.add_argument('-intflag' , type=int, default=3)
args = parser.parse_args()
boolflag = args.boolflag
intflag = args.intflag
print ("Bool Flag is ", boolflag)
print ("Int Flag is ", intflag)
当我尝试使用 python scrap.py -boolflag False -intflag 314
执行它时,我得到了结果
Bool Flag is True
Int Flag is 314
为什么会这样?!! intflag 看起来被正确解析了,但是 boolean flag 总是被解析成 True
,即使我在命令行参数中明确指出它应该是 False
。
我错在哪里了?