Рубрики
Без рубрики

Python argparse.

Python Argparse, Argparse модуль, аргумент Argparse, аргурирующий пример, аргумент Abparse Дополнительный позиционный аргумент, ADD_ARGument, значение по умолчанию, введите строку, optparse

Автор оригинала: Pankaj Kumar.

Модуль Python Argparse является предпочтительным способом разбора аргументов командной строки. Парсинг аргументов командной строки является очень распространенной задачей, которую сценарии Python делают и ведут себя в соответствии с пропущенными значениями.

Python argparse.

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

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

Почему нам нужен модуль Python Argparse?

Мы постараемся установить нашу потребность в argparse Модуль, глядя на простой пример использования SYS модуль :

import sys

if len(sys.argv) > 1:
    print("Argument 1: {}".format(sys.argv[0]))
    print("Argument 2: {}".format(sys.argv[1]))
else:
    print("No arguments passed.")

Без прохождения аргументов вывод будет:

Очевидно, что даже имя сценария поймано параметром командной строки, а также, потому что, хорошо, вот что это для Python Отказ

Пример Python Argparse

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

С argparse мы можем изящно обращаться с отсутствием и наличием параметров. Давайте изучим простой пример:

import argparse
parser = argparse.ArgumentParser()
parser.parse_args()

Давайте запустим скрипт разное время с разными вариантами, чтобы увидеть, что он приводит к:

Давайте понять, что произошло, когда мы провели скрипт:

  • Во-первых, мы запустили программу без аргументов. В этом случае скрипт остался молчать.
  • --help Опция – единственный вариант, который нам не нужно указывать с помощью argparse, как Необязательно или Требуется Отказ
  • В последнем случае мы использовали неизвестный вариант, который argparse, утверждается как Непризнанные аргументы Отказ

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

Python Argparse позиционные аргументы

Теперь, в наших сценариях, это будет часто, когда нам нужен аргумент, который является обязательно, передается в скрипт на исполнение. Мы увидим ошибку, если не передано. Давайте посмотрим пример:

import argparse

parser = argparse.ArgumentParser()
parser.add_argument("blog")
args = parser.parse_args()

if args.blog == 'JournalDev':
    print('You made it!')
else:
    print("Didn't make it!")

Когда мы запускаем скрипт с разными параметрами, нет, правильно и что-то еще:

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

Python Argparse Позиционные аргументы Значения по умолчанию

В нашем последнем примере значение позиционного аргумента пусто, когда не предусмотрено. Но иногда мы хотим значения по умолчанию переменной или аргумента, мы можем сделать это с модулем ArgParse.

См. Пример о том, как пройти значение по умолчанию для аргумента:

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('blog', nargs='?', default="JournalDev")
args = parser.parse_args()

if args.blog == 'JournalDev':
    print('You made it!')
else:
    print("Didn't make it!")

Когда мы запускаем скрипт с разными параметрами, нет, правильно и что-то еще:

На этот раз отсутствие параметра было изящно управляется, поскольку значения по умолчанию были переданы.

Справка аргумента Python Argparse

Всякий раз, когда мы делаем новый сценарий Python, мы знаем, какие аргументы проходят и какова судьба каждого аргумента. Но как насчет пользователя, который ничего не знает о нашем скрипте? Как он знает, какие аргументы проходят, в каком порядке и что они делают?

Это где другой атрибут в Add_argument Функция приходит к спасению:

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('blog', default="JournalDev", help="Best blog name here.")
args = parser.parse_args()

if args.blog == 'JournalDev':
    print('You made it!')
else:
    print("Didn't make it!")

Теперь, когда мы запускаем наш скрипт как ( -h для помощи):

python argparse_positional_help.py -h

Мы получаем следующий вывод:

Разве это не хорошо? Таким образом, пользователь сценария просто должен видеть, что он/она должен пройти и в каком порядке. Отлично!

Позиционные аргументы Тип данных

Теперь позиционные аргументы всегда рассматриваются как строки, если вы не говорите Python не. Давайте посмотрим на это с помощью примерного фрагмента кода:

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('number', help="Enter number to triple it.")
args = parser.parse_args()
print(args.number*3)

В этом скрипте мы просто умножаем число с тремя. Когда мы бежим это с 3 В качестве ввода мы получаем следующий выход:

Что случилось, потому что питон лечил 3 как Строка Так что это просто добавить ту же строку 3 время.

Это может быть исправлено, если мы сообщим Python из DataType, как с помощью Тип атрибут:

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('number', help="Enter number to cube.", type=int)
args = parser.parse_args()
print(args.number*3)

На этот раз, когда мы запускаем этот скрипт с помощью 3 В качестве ввода мы получаем следующий выход:

Таким образом, мы можем даже убедиться, что прошедшие типы данных верны.

Python Argparse Необязательные аргументы

Теперь, в наших сценариях, это будет часто, когда нам нужен аргумент, который является Необязательно быть передан скрипту. Мы будем Не Смотрите ошибку, если не передано. Давайте посмотрим пример:

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('--blog', help="Best blog name here.")
args = parser.parse_args()

if args.blog == 'JournalDev':
    print('You made it!')

На этот раз мы использовали - в необязательном имени аргумента. Когда мы запускаем скрипт:

С - Перед дополнительным именем параметра мы можем определить необязательные параметры в любом порядке.

Способ передачи значений по умолчанию, справочные сообщения и типы данных для дополнительных параметров, как и в позиционных параметрах. Просто точку, который следует отметить, если ни одно значение не передается на необязательный аргумент, оно присваивается значение Нет для программы.

Короткие имена для дополнительных аргументов с argparse

В нашем примере выше, мы были очень четко на каком цене нам нужно было пройти пользователь, необязательно. Это приятно, но что, если описательное имя необязательных параметров в наших сценариях длится долго. К счастью, мы можем назначить короткое имя параметров. Давайте посмотрим пример фрагмента:

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('-b', '--blog', help="Best blog name here.")
args = parser.parse_args()

if args.blog == 'JournalDev':
    print('You made it!')

Разве это не так просто? Просто используйте дополнительный параметр в функции ADD_ARGument, и это сделано. Давайте запустим этот сценарий сейчас:

Сочетание дополнительных и позиционных параметров с помощью argparse

Мы также можем объединить использование необязательных и позиционных параметров командной строки в нашем скрипте. Давайте быстро увидим пример:

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('blog', help="Best blog name here.")
parser.add_argument('-w', '--writer', help="Team Player.")
args = parser.parse_args()

if args.blog == 'JournalDev':
    print('You made it!')

if args.writer == 'Shubham':
    print('Technical Author.')

Когда мы запускаем скрипт:

В этом уроке мы узнали о различных способах, через которые мы можем управлять параметрами командной строки с помощью модуля ArgBase в Python.

Ссылка: API док