而不是使用的,你可以嘗試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',因爲它提供了更可預測的行爲。 –