而不是使用的,你可以尝试docopt
:
"""optargs - testing optional arguments
Usage:
optargs
optargs foo
optargs <somestring>
"""
if __name__ == "__main__":
from docopt import docopt
args = docopt(__doc__)
print args
人们可以寻求帮助:
$ python optargs.py -h
optargs - testing optional arguments
Usage:
optargs
optargs foo
optargs <somestring>
然后,调用它没有任何参数:
$ python optargs.py
{'<somestring>': None,
'foo': False}
然后用参数foo
(你"foo"
键值设为True
):
$ python optargs.py foo
{'<somestring>': None,
'foo': True}
,最后用任意字符串(你"<somestring>"
键值设为"somstring"
:
$ python optargs.py somstring
{'<somestring>': 'somstring',
'foo': False}
什么迷惑你关于[documentation](https://docs.python.org/2/library/argparse.html),并且不会使用[sys.argv](https://docs.python.org/2/library/sys .html#sys.argv)是足够的无论如何呢? – jsfan
没有if语句 –
@StidZhang从理论上来看是非常合法的问题,但从人体工程学的角度来看它是设计不佳的命令行界面。我建议使用三个子命令'program.py base','program.py foo'和'program.py procstring',因为它提供了更可预测的行为。 –