Показать тему, используя argparse

1

Моя цель - задать вопрос пользователю с помощью argparse (CLI), а затем сохранить ввод как строку так же, как и следующее:

marker = input("Name of marker: ")
Location = input("Name of location: ")

Я не уверен, как это сделать, но вот что я сейчас имею:

parser = argparse.ArgumentParser(description = 'Collect Information')
parser.add_argument('marker', help = 'Name of marker')
parser.add_argument('location', help = 'Name of location')
args = parser.parse_args()
  • 1
    Вы запускали этот скрипт с различными значениями командной строки? Используйте print(args) чтобы увидеть, что анализатор проанализировал.
  • 1
    argparse не предназначен для интерактивного ввода. Он анализирует ввод, предоставленный в командной строке.
Теги:
python-3.x
argparse

3 ответа

0
Лучший ответ

Все, что у вас есть, в порядке; вам просто нужно знать, где искать аргументы.

parser = argparse.ArgumentParser(description='Collect Information')
parser.add_argument('marker', help='Name of marker')
parser.add_argument('location', help='Name of location')
args = parser.parse_args()

print("Your marker is {}".format(args.marker))
print("Its location is {}".format(args.location))

Как правило, возвращаемое значение parse_args имеет атрибут для каждого аргумента, имя которого взято из имени аргумента.

  • 0
    спасибо, но я искал способ отобразить вопрос первым. Например, было бы спросить: имя маркера. Затем пользователь вводит ответ.
  • 0
    @ Джон, это не то, как работает анализатор командной строки.
Показать ещё 1 комментарий
0

Если вы действительно уверены, что хотите это сделать, используя argparse, то у вас уже есть большая часть его:

import argparse

parser = argparse.ArgumentParser(description = 'Collect Information')
parser.add_argument('-m', '--marker', dest='marker', type=str, help = 'Name of marker', required=True)  # The required argument is optional here and defaults to False
parser.add_argument('-l', '--location', dest='location', type=str, help = 'Name of location', required=True)
args = parser.parse_args()

marker = args.marker
location = args.location

Однако обратите внимание, что help сообщение будет отображаться только в том случае, если пользователь вводит команду: python name_of_your_script.py --help.

0

При вызове вашего скрипта, подобного этому python script.py marker value вы можете получить доступ к этому value в своем скрипте, вызвав location = args.marker

Ещё вопросы

Сообщество Overcoder
Наверх
Меню