我想用argparse来parsing写成“–foo True”或“–foo False”的布尔命令行参数。 例如: my_program –my_boolean_flag False 但是,下面的testing代码不会做我想要的: 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来parsing"False" , "F"和它们的小写variables是否为False ?
我有一个脚本是这样使用的: usage: installer.py dir [-h] [-v] dir是一个定义如下的位置参数: parser.add_argument('dir', default=os.getcwd()) 我想要的dir是可选的:当它没有指定它应该只是cwd 。 不幸的是,当我不指定dir参数时,我得到Error: Too few arguments 。
我需要的是: pro [-a xxx | [-b yyy -c zzz]] 我试过这个,但不起作用。 有人能帮我吗? group= parser.add_argument_group('Model 2') group_ex = group.add_mutually_exclusive_group() group_ex.add_argument("-a", type=str, action = "store", default = "", help="test") group_ex_2 = group_ex.add_argument_group("option 2") group_ex_2.add_argument("-b", type=str, action = "store", default = "", help="test") group_ex_2.add_argument("-c", type=str, action = "store", default = "", help="test") 谢谢!
我注意到Python 2.7文档还包含另一个命令行parsing模块。 除了getopt和optparse之外,我们现在已经有了argparse 。 为什么还有另一个命令行parsing模块被创build? 为什么我应该使用它而不是optparse ? 是否有我应该知道的新function?