在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')
Run Code Online (Sandbox Code Playgroud)
什么是布尔人?
基本上我想在我的脚本中传递一个标志,告诉脚本是否要执行特定的操作.
sbe*_*rry 146
您可以使用action
with store_true
| store_false
,或者你可以使用int并让隐式转换检查一个布尔值.
使用the action
,你不会传递一个--foo=true
和--foo=false
参数,如果它被设置为true,你只需要包含它.
python myProgram.py --foo
Run Code Online (Sandbox Code Playgroud)
事实上,我认为你可能想要的是
parser.add_argument('-b', action='store_true', default=False)
Run Code Online (Sandbox Code Playgroud)
Ned*_*der 17
parser.add_argument('--foo', action='store_true')
Run Code Online (Sandbox Code Playgroud)
import distutils.util
ARGP.add_argument('--on', '-o', type=distutils.util.strtobool, default='true')
Run Code Online (Sandbox Code Playgroud)
调用它的示例:
$ ./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
Run Code Online (Sandbox Code Playgroud)
我应该提到,如果你想支持像“yes”和“no”这样的值,你也可以将参数绑定到本地包装函数,以处理其他一些精确的字符串匹配。您还可以尝试将输入解释为 yaml,它也可以处理是/否。不过,我有一段时间没有这样做了,我想最近我很讨厌具有相同dest
值的相互排斥的论点,一个--no-option
是action='store_false'
,一个--option
是action='store_true'
归档时间: |
|
查看次数: |
47661 次 |
最近记录: |