Я пытаюсь найти самый 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...