我的應用程序解析命令行參數:秩序的getopt
import sys
import getopt
arguments = sys.argv[1:]
options, remainder = getopt.getopt(arguments, "aa:bb:cc:dd:h", ["aaaa=", "bbbb=", "cccc=", "dddd=", "help"])
print dict(options)
這個偉大的工程,但同時奇怪的:如果我把參數在不同的順序,他們沒有得到解析
python my_app.py --aaaa=value1 --bbbb=value2 --cccc=value3 --dddd=value4 #ok
python my_app.py --dddd=value4 --bbbb=value2 --cccc=value3 --aaaa=value1 # empty
這是令人失望的,因爲參數的順序應該不重要,應該嗎?有什麼辦法可以解決這個問題嗎?
UPDATE:
python my_app.py -aa value1 # odd, empty { "-a" : "" }
python my_app.py -a value1 # even this empty { "-a" : "" }
適合我。你如何填充論據? – user3885927 2014-09-23 23:59:45
你在什麼版本的Python?如果你有3.2或更高版本,[argparse](https://docs.python.org/3/library/argparse.html)是一個好方法,比getopt更靈活。 – Ajean 2014-09-24 00:00:53
@ user3885927,我剛給你看。你什麼意思? – 2014-09-24 00:16:58