布尔参数的脚本
在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-option
与action='store_false'
,一个 – --option
与action='store_true'