在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')
什么是布尔人?
基本上我想在我的脚本中传递一个标志,告诉脚本是否要执行特定操作。
答案 0 :(得分:146)
您可以将action
与store_true
| store_false
一起使用,也可以使用int并让隐式转换检查布尔值。
使用action
,您不会传递--foo=true
和--foo=false
参数,如果要将其设置为true,则只需包含它。
python myProgram.py --foo
事实上,我认为你可能想要的是
parser.add_argument('-b', action='store_true', default=False)
答案 1 :(得分:17)
parser.add_argument('--foo', action='store_true')
答案 2 :(得分:4)
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
我应该提一下,你也可以将参数绑定到本地包装函数,如果你想支持“是”和“否”等值,可以处理其他一些精确的字符串匹配。您也可以尝试将输入解释为yaml,它也可以处理是/否。我有一段时间没有这样做,我认为最近我用相同的dest
值,一个--no-option
和action='store_false'
以及一个{{ 1}} --option