Как анализировать аргументы в командной строке в Python

How Parse Arguments Command Line Python



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

Разбор аргумента командной строки с использованием sys модуль

Аргументы командной строки сохраняются в списке с использованием sys модуль. sys.argv используется для чтения значений аргументов командной строки. Общее количество аргументов командной строки можно подсчитать, используя len () функция. Использование этого модуля описано в части статьи.







Пример 1: Чтение количества аргументов и значений аргументов

Создайте файл со следующим скриптом Python. Здесь значения аргументов командной строки хранятся в переменной, argv как и другие языки. len () Метод подсчитывает общее количество аргументов, переданных во время выполнения скрипта. Значения аргументов печатаются в виде массива в конце скрипта.



# Импортировать модуль sys
Импортировать sys

# Вывести общее количество аргументов
Распечатать('Всего аргументов:', len(sys.argv))
Распечатать('Значения аргументов:', п(sys.argv))

Выход:



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





Пример 2: Чтение значений аргументов с помощью цикла



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

# Импортировать модуль sys
Импортировать sys

# Вывести тип переменной sys.argv
Распечатать(тип(sys.argv))

# Распечатать каждый аргумент командной строки в каждой строке
Распечатать('Аргументы командной строки:')
дляяв sys.argv:
Распечатать(я)

Выход:

Вышеупомянутый сценарий выполняется путем предоставления трех аргументов с именем сценария. Следующий вывод появится после запуска скрипта.

Разбор аргумента командной строки с использованием модуля getopt

С вершиной модуль используется для анализа аргументов командной строки с параметрами. сверху () метод этого модуля используется для чтения аргументов. У этого метода есть три аргумента. Первые два аргумента являются обязательными, а последний аргумент - необязательным. Использование этих аргументов приводится ниже.

аргументы: Он содержит аргумент, взятый из аргумента командной строки.

short_option: Это может быть любая буква, которая передается с аргументом.

long_option: Он используется для определения длинных параметров из двух частей. Это имя параметра и значение параметра.

Синтаксис: getopt.getopt (аргументы, short_option, [long_option])

Пример 3: Чтение значений аргументов с использованием коротких опций getopt

увенчанный модуль содержит больше функций, чем sys модуль. В следующем примере показано, как можно использовать короткие параметры в сверху () метод. argv переменная будет хранить аргументы командной строки, опуская имя сценария. Далее в сверху () метод, который можно использовать с аргументом во время выполнения. Если возникает какая-либо ошибка, отображается сообщение об ошибке.

# Импортировать модуль getopt
Импортировать увенчанный

# Импортировать модуль sys
Импортировать sys

# Хранить переменную аргумента без имени скрипта
argvзнак равно sys.argv[1:]

пытаться:
# Определить короткие параметры getopt
параметры,аргументызнак равно увенчанный.увенчанный(argv, 'х: у:')

# выводим параметры и аргумент
Распечатать(параметры)
Распечатать(аргументы)

Кроме увенчанный.GetoptError:

# Распечатать сообщение об ошибке, если указана неправильная опция
Распечатать('Предоставлен неправильный вариант')

# Завершить скрипт
sys.выход(2)

Выход:

Запустите сценарий без аргументов, аргументы с правильными параметрами и аргументы с неправильными параметрами.

Пример 4: Чтение значений аргументов с использованием коротких и длинных опций getopt

В этом примере показано, как можно использовать как короткие, так и длинные параметры со значениями аргументов. Он добавит два числа, когда '-к' или '-Добавить' будет использоваться как опция и вычесть два числа, когда ‘ -s ’ или ' –Sub ’ будет использоваться как опция во время выполнения.

# Импортировать модуль getopt
Импортировать увенчанный

# Импортировать модуль sys
Импортировать sys

# Хранить переменную аргумента без имени скрипта
argvзнак равно sys.argv[1:]

# Инициализировать переменную результата
результатзнак равно0

пытаться:

# Определить короткие и длинные варианты getopt
параметры,аргументызнак равно увенчанный.увенчанный(sys.argv[1:], 'в качестве', ['добавить =','sub ='])

# Прочтите каждую опцию, используя цикл for
длявыбрать,злойвпараметры:
# Вычислить сумму, если опция -a или --add
есливыбратьв ('-к', '--Добавить'):
результатзнак равно int(argv[1])+int(argv[2])

# Рассчитать солнечную тягу, если опция -s или --sub
Элифвыбратьв ('-s', '--sub'):
результатзнак равно int(argv[1])-int(argv[2])

Распечатать('Результат =',результат)

Кроме увенчанный.GetoptError:

# Распечатать сообщение об ошибке, если указана неправильная опция
Распечатать('Предоставлен неправильный вариант')

# Завершить скрипт
sys.выход(2)

Выход:

Запустите сценарий без каких-либо аргументов и опций, аргументы с опцией «-a», аргументы с опцией «-s» и аргументы с неправильной опцией.

Разбор аргумента командной строки с использованием модуля argparse

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

Пример 5: Чтение аргументов командной строки с помощью argparse

В следующем примере показано использование argparse модуль для чтения аргумента командной строки. Здесь определены две опции для чтения аргументов командной строки. Эти ‘-N’ или ‘–name’ а также ‘-E’ или ‘–email’. Если пользователь предоставит неверный аргумент, он покажет ошибку с сообщением об использовании. Если пользователь предоставляет правильные параметры с аргументами, он отобразит значения аргументов. если пользователь запускает сценарий с опцией «–help», он предоставит необходимое сообщение для запуска сценария.

# Импортировать модуль argparse
Импортироватьargparse

# Импортировать модуль sys
Импортировать sys

# Объявить функцию для определения аргументов командной строки
defreadOptions(аргументызнак равноsys.argv[1:]):
парсер знак равноargparse.ArgumentParser(описаниезнак равно'Списки команд синтаксического анализа'.)
парсер.add_argument('-n', '--имя', помощьзнак равно'Введите ваше имя.')
парсер.add_argument('-А также', '--Эл. адрес', помощьзнак равно'Введите свой адрес электронной почты'.)
выбираетзнак равно парсер.parse_args(аргументы)
возвращениевыбирает

# Вызов функции для чтения значений аргументов
параметрызнак равноreadOptions(sys.argv[1:])
Распечатать(параметры.имя)
Распечатать(параметры.Эл. адрес)

Выход:

Запустите сценарий с неправильной опцией, правильной опцией и опцией помощи.

Заключение:

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

Посмотреть авторское видео: здесь