Как преобразовать произвольную строку параметров в словарь Python

Я пытаюсь найти самый Pythonic способ взять строку, содержащую параметры командной строки:

"-t 500 -x -c 3 -d"

И превратить его в словарь

{"-t":"500", "-x":True, "-c":"3", "-d": True}

ОБНОВЛЕНИЕ:Строка также должна содержать --длинные опции и слова с тире в середине:

"-t 500 -x -c 3 -d --long-option 456 -testing weird-behaviour"

Прежде чем предложить мне изучить модуль OptionParse,имейте в виду, что я не знаю, что такое допустимые параметры или что-то в этом роде, я просто пытаюсь поместить строку в словарь, чтобы разрешить ее изменение на основе другого словаря параметров.

Подход, который я рассматриваю, заключается в использовании разделения ()для получения элементов в списке, а затем обхода списка и поиска элементов, начинающихся с тире "-", и использования их в качестве ключа, а затем каким-то образом следующий элемент в списке для значения. У меня проблема с параметрами, которые не имеют значений. Я думал сделать что-то вроде:

for i in range(0, len(opt_list)):
        if opt_list[i][0] == "-":
            if len(opt_list) > i+1 and not opt_list[i+1][0] == "-":
                opt_dict[opt_list[i]] = opt_list[i+1] 
            else:
                opt_dict[opt_list[i]] = True

Но когда я это делаю, кажется, что я программирую на C, а не на Python...

9
задан Plazgoth 30 June 2013 в 00:50
поделиться