Ich möchte argparse verwenden, um boolean Befehlszeilenargumente zu parsen, die als "--foo True" oder "--foo False" geschrieben sind. Zum Beispiel:
my_program --my_boolean_flag False
Der folgende Testcode tut jedoch nicht, was ich möchte:
import argparse
parser = argparse.ArgumentParser(description="Mein Parser")
parser.add_argument("--my_bool", type=bool)
cmd_line = ["--my_bool", "False"]
parsed_args = parser.parse(cmd_line)
Leider ergibt parsed_args.my_bool
True
. Dies ist auch der Fall, wenn ich cmd_line
zu ["--my_bool", ""]
ändere, was überraschend ist, da bool("")
zu False
ausgewertet wird.
Wie kann ich argparse dazu bringen, "False"
, "F"
und deren Kleinschreibungsvarianten als False
zu parsen?