Python 脚本的布尔参数
在Python中,我了解如何将int和str参数添加到脚本中Python 脚本的布尔参数,python,Python,在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') 这对布尔人来说
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\u true
store\u false
一起使用,也可以使用int并让隐式强制转换检查布尔值
parser.add_argument('--foo', action='store_true')
使用操作
,您不会传递--foo=true
和--foo=false
参数,如果要将其设置为true,您只需将其包括在内
python myProgram.py --foo
事实上,我认为你可能想要的是
parser.add_argument('-b', action='store_true', default=False)
调用它的示例:
$ ./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”等值,也可以将参数绑定到本地包装函数,以处理其他精确的字符串匹配。您还可以尝试将输入解释为yaml,它也可以处理yes/no。虽然我已经有一段时间没有这样做了,但我想最近我已经习惯了使用相同的
dest
值的互斥参数,一个——使用action='store\u false'
,没有选项,还有一个--选项带有action='store\u true'
的action='store\u true'
有什么问题吗?你想要布尔型的行为是什么?(例如,使用“-v true”和“-v false”?)我不认为有必要使用default=false
。@PaulDraper:Explicit比implicit好。@PaulDraper我已经检查过它不是必需的,但您可以将其作为显式值。@PaulDraper不是布尔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