Понимание модуля argparse в python

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

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("DocID", type= int, help= "Insert DocID Here")
parser.add_argument("echo", help = "Enter in the FileName to be read")
args = parser.parse_args()
print args

Это моя невероятно простая программа, которую я пытаюсь использовать, просто чтобы узнать больше о том, как работает argparse. Мне просто нужно узнать, как и где вызывать программу, чтобы использовать аргументы, которые я ей предоставляю.

Изменить: Чтобы сделать мой вопрос более ясным извините. У меня есть этот код, но я не знаю, как вызвать программу в целом, чтобы я мог ее запустить. Например, как мне запустить это в командной строке? Потому что при запуске просто в IDLE выдает ошибку и из-за отсутствия команд

2 ответа

Решение

АргументПарсера parse_args Метод может принимать список в качестве входных данных. Этот список используется для анализа аргументов командной строки. Итак, общая идиома это:

args = parser.parse_args('-a -b -c --value=True'.split())

поскольку str.split возвращает список. ('a b c'.split() == ['a', 'b', 'c'])


Обычно, когда вы добавляете аргументы, вы делаете это так:

parser.add_argument('-a', '--a-long-name', type=int, ...)

Аргументы без - или же -- впереди позиционные аргументы, поэтому оба ваших аргумента являются позиционными. Вы можете увидеть немного из того, что происходит, если вы делаете:

args = parser.parse_args(['1','foo'])
print args.DocID # 1
print args.echo  # foo

что аналогично вызову вашего скрипта как python youscript.py 1 foo (без списка внутри parse_args).

Если вы хотите знать синтаксис командной строки сценария... просто вызовите его с помощью --help, argparse автоматически предоставит его вам.

⚫  gbin@sal tmp % python test.py --help
usage: test.py [-h] DocID echo

positional arguments:
  DocID       Insert DocID Here
  echo        Enter in the FileName to be read

optional arguments:
  -h, --help  show this help message and exit
Другие вопросы по тегам