Why is argparse not parsing my boolean flag correctly?
本问题已经有最佳答案,请猛点这里访问。
我正试图使用argparse模块使我的python程序接受灵活的命令行参数。我想传递一个简单的布尔标志,并说
考虑以下内容。
1 2 3 4 5 6 7 8 9 10 11 12 13 | 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) |
当我试图用
1 2 | Bool Flag is True Int Flag is 314 |
为什么会这样?!!!intflag似乎被正确解析了,但是布尔标志总是被解析为
我哪里出错了?
您试图将字符串
1 2 | >>> bool("False") True |
这不起作用,因为字符串
用
1 2 | parser.add_argument('--disable-feature', dest='feature', action='store_false') |
现在使用该开关时,存储