getoptの戻り値をグループ化
こういうのが欲しい。
# hoge.py import sys import getopt import itertools opts, argv = getopt.getopt(sys.argv[1:], 'x:y:z:') keyfunc = lambda item: item[0] opts = sorted(opts, key=keyfunc) opts = itertools.groupby(opts, key=keyfunc) opts = [(k, list(vv for _, vv in v)) for k, v in opts] opts = dict(opts) import pprint pprint.pprint(dict(opts=opts, argv=argv))
$ python hoge.py -x5 -y6 -x7 -y8 -z9 -x0 foo bar baz {'argv': ['foo', 'bar', 'baz'], 'opts': {'-x': ['5', '7', '0'], '-y': ['6', '8'], '-z': ['9']}}
optsの合成がもっとスマートに出来ないものか。