我想使用argparse来解析写为"-foo True"或"-foo False"的布尔命令行参数.例如:
my_program --my_boolean_flag False
但是,下面的测试代码并不能满足我的要求:
import argparse
parser = argparse.ArgumentParser(description="My parser")
parser.add_argument("--my_bool", type=bool)
cmd_line = ["--my_bool", "False"]
parsed_args = parser.parse(cmd_line)
可悲的是,parsed_args.my_bool
等于True
.即使我将cmd_line
改为["--my_bool", ""]
,情况也是如此,这是令人惊讶的,因为bool("")
等于False
.
我怎样才能让argparse解析"False"
、"F"
,而它们的小写变量是False
?