Я использую getopt для обработки дополнительного аргумента командной строки, который должен принять список. Что-то вроде этого:
foo.py --my_list=[1, 2, 3, 4,5]
Но это обрезает все после" [1",
Мои вопросы: A) Является там способом определить список, не преобразовывая его в строку? (использующий getopt)
B) Если я должен преобразовать список в строку, как преобразовать этот список в строку? например, что-то как mylist.split ("?") для избавлений от квадратных скобок?? существует ли лучший путь?
Спасибо
Существует два варианта, которые я могу подумать:
Append
Действие, чтобы указать, что вы хотите сделать как : foo.py --my_list = 1 --my_list = 2 ...
. foo.py --my_list = '1,2,3,4,5'
, а затем используйте X.Split (',')
, чтобы Получите ваши значения в списке. Вы можете использовать Getopt
или OptParse
для этого метода. Преимущество первого метода состоит в том, что вы можете получить целочисленные значения непосредственно в списке, за счет дольше командной линии (но вы можете добавить опцию одноранцезда для - My_List
, если вы хотите). Преимущество второго является короче командной строки, но после разделения ()
необходимо преобразовать значения строковых '1'
, '2'
, и т. д., чтобы целые числа (довольно легкие, а также).
Может быть, вы должны просто приложить аргумент в цитатах?
foo.py "--my_list=[1, 2, 3, 4,5]"
В противном случае каждое пространство будет рассматриваться как сепаратор для аргументов.