布尔参数的脚本

在Python中,我理解如何将int和str参数添加到脚本中。

parser=argparse.ArgumentParser(description="""Mydescription""") parser.add_argument('-l', type=str, default='info', help='String argument') parser.add_argument('-dt', type=int, default ='', help='int argument') 

什么是布尔值?

基本上我想通过一个标志到我的脚本,它会告诉脚本是否执行一个特定的动作。

您可以使用store_true |操作 store_false ,或者你可以使用一个int并让隐式转换检查一个布尔值。

使用这个action ,你不会传递一个--foo=true--foo=false参数,如果它被设置为true,你可以简单地包含它。

 python myProgram.py --foo 

其实我想你可能想要的是

 parser.add_argument('-b', action='store_true', default=False) 
 parser.add_argument('--foo', action='store_true') 
 import distutils.util ARGP.add_argument('--on', '-o', type=distutils.util.strtobool, default='true') 

调用它的示例:

 $ ./myscript # argp.on = 1 $ ./myscript --on=false # argp.on = 0 $ ./myscript --on=False # argp.on = 0 $ ./myscript --on=0 # argp.on = 0 $ ./myscript --on=1 # argp.on = 1 $ ./myscript -o0 # argp.on = 0 $ ./myscript -o false # argp.on == 0 

我应该提到,如果你想支持“yes”和“no”等值,你也可以将参数绑定到本地包装器函数,以处理其他精确的string匹配。 你也可以尝试解释input为yaml,它可以处理是/否。 尽pipe我还没有这样做,我想最近我吸取了相同的dest价值的互斥参数,一个--no-optionaction='store_false' ,一个 – --optionaction='store_true'