определение списка как параметр командной строки в Python

Я использую getopt для обработки дополнительного аргумента командной строки, который должен принять список. Что-то вроде этого:

foo.py --my_list=[1, 2, 3, 4,5] 

Но это обрезает все после" [1",

Мои вопросы: A) Является там способом определить список, не преобразовывая его в строку? (использующий getopt)

B) Если я должен преобразовать список в строку, как преобразовать этот список в строку? например, что-то как mylist.split ("?") для избавлений от квадратных скобок?? существует ли лучший путь?

Спасибо

21
задан cppb 18 January 2010 в 14:13
поделиться

2 ответа

Существует два варианта, которые я могу подумать:

  • Использование optParse , и использование 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' , и т. д., чтобы целые числа (довольно легкие, а также).

26
ответ дан 29 November 2019 в 20:06
поделиться

Может быть, вы должны просто приложить аргумент в цитатах?

foo.py "--my_list=[1, 2, 3, 4,5]"

В противном случае каждое пространство будет рассматриваться как сепаратор для аргументов.

7
ответ дан 29 November 2019 в 20:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: