Позиционные аргументы в питоне Docopt

Я пишу простой менеджер контактов командной строки. Я хочу иметь возможность добавить новый контакт с помощью следующей команды.
manager.py add -n NAME -p PHONENUMBER
но всякий раз, когда я добавляю контакт, используя имя и фамилию, код выдает ошибки.
например. manager.py add -n emeka onwuzulike +23464715326,
это мой код
Usage: manager.py add -n NANE -p PHONENUMBER

2 ответа

Решение

Проблема в том, что каждый аргумент разбивается на символ пробела, поэтому отправляется:

  • добавлять
  • -n
  • Emeka
  • onwuzulike
  • +23464715326

у вас есть несколько вариантов, простейший из всех, что я могу придумать, это вместо использования пробела в имени, использования разделителя, такого как подчеркивание (_), а затем в вашем скрипте замените _ пробелом.

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

Чтобы достичь этого, вам нужно поставить строку один аргумент имени, как так
manager.py add -n 'emeka onwuzulike' -p 08064715300

Другие вопросы по тегам