Я думаю, вы спрашиваете о способе разделения определенных аргументов через тире вместо пробела.Пожалуйста, исправьте меня, если я ошибаюсь.
Сможете ли вы выполнить то, что вы хотите, с помощью аргумента под названием «get-info» и аргумента под названием «get-reverse»?Чего добивается разделение слова «получить»?Есть ли надежда, что вы можете вставить туда другие слова (например, set set?), Смешать и сопоставить их?
APT (https://wiki.debian.org/Apt) - менеджер пакетов Debian. Apt-get ()https://wiki.debian.org/apt-get) является интерфейсом командной строки для него. "-Get" является частью команды, а не аргументом, переданным ей. Его аргументы по-прежнему анализируются с пробелами между ними.
Оболочка (например,Bash https://www.gnu.org/software/bash/manual/html_node/Environment.html) - это то, что анализирует пробелы между параметрами при выполнении программы. Он берет каждое слово после первого (которое является именем исполняемого файла), разделенное пробелами, и помещает их вмассив строк, называемый окружением. Ваша программа получает этот массив строк и не обрабатывает пробелы между аргументами и даже не видит пробелы. Они уже разделены временем, в которое она его видит.
Я знаю, что яЯ не совсем ответил на ваш вопрос, и, возможно, есть более простой ответ, о котором я не знаю. У меня есть идея сделать некоторую предварительную обработку ваших аргументов перед тем, как выи найти их в argparse.Например, вы можете перебирать каждый аргумент и проверять строки, начинающиеся с «get-», и, если это так, делать что-то с этим на этом уровне.Я надеюсь, что вы нашли что-нибудь из этого полезного!
Редактировать / Подробнее: (после прочтения вашего комментария)
Когда ваша программа на Python запущена, аргументы уже былиотсортировано в массив строк.argparse запрограммирован для понимания этого массива строк.Это не в состоянии сломать эти строки, насколько мне известно.Если вы планируете использовать только три варианта: get, get-info и get-reverse, то для каждого из них свой аргумент может оказаться наиболее прагматичным вариантом.Если это слишком грубая сила для вас и / или вы планируете добавить больше опций, нам нужно подумать о путях изменения аргументов между точкой, в которой запускается программа, и точкой, которую argparse читает их.argparse не делает то, что вы хотите, поэтому мы должны взять то, что вы хотите, и изменить его на то, что фактически принимает argparse.
Вот вариант: вы можете сделать так, чтобы argparse работал так, как вы этого хотитедля calculator.py get
, calculator.py get -info
и calculator.py get -reverse
с теми дополнительными пробелами, которые вам не нужны.Когда программа запускается, в первую очередь она ищет строки типа get-info
или get-reverse
и заменяет их на 2 разные строки, добавляя между ними пробел, который пользователь никогда не вводил.Тогда пусть argparse сделает свое дело.Несмотря на то, что пользователь ввел «get-info», argparse интерпретирует его так, как если бы он набрал «get -info», потому что вы сами обработали текст между запуском программы и вызовом argparse.