Python

Учебник по синтаксическому анализу командной строки Python

Учебник по синтаксическому анализу командной строки Python
Парсинг - это процесс анализа серии текстов, чтобы выяснить, что программа должна делать с заданными командами. Текст разбивается на небольшие части, известные как токены, для построения структуры данных, известной компилятору или интерпретатору. Результатом выполнения является ожидаемый результат в конце. Python часто используется как язык для легкого анализа командных строк. В этом руководстве используется этот специальный модуль, поставляемый с Python, и он известен как argparse. Особенность argparse в том, что он довольно прост в использовании, удобен для пользователя, доступен с Python и помогает с легкостью создавать интерфейсы командной строки.

В следующем руководстве показано, как использовать argparse в Ubuntu с Python3 и, таким образом, убедиться, что оба они доступны, прежде чем продолжить. Если Python3 недоступен, его можно установить с помощью следующих двух командных строк:

sudo apt-get update
sudo apt-get install python3.6

Основной синтаксис

Цель этого руководства - описать основные функции argparse и то, как использовать некоторые из его параметров. Argparse требует Python и блокнота для ввода команд. В Ubuntu есть собственный блокнот, известный как «Текстовый редактор», к которому можно получить доступ через панель управления Ubuntu. Команды выполняются через терминал.

  1. Запустите текстовый редактор через Ubuntu Dash.
  2. Введите следующие две строки в качестве основных кодов. Первая строка импортирует модуль argparse во фрагмент кода, тогда как вторая создает объект парсера аргументов, который содержит всю информацию, необходимую для синтаксического анализа команд на типы данных Python. import argparse
    парсер = argparse.ArgumentParser ()
  3. Используйте следующую команду для преобразования строк аргументов в объекты. Обычно объект создается и назначается переменной, но это не обязательно. парсер.parse_args ()
  4. Программу можно запустить в терминале Linux через python3 с помощью следующей команды. python3 pscript.ру

Отображение описания приложения

Параметр описания приложения указывает, для чего оно предназначено. Когда команда help используется со скриптом python, появляется описание приложения вместе с доступными флагами, которые будут использоваться в программе.  Следующая строка должна использоваться для указания описания приложения.

парсер = argparse.ArgumentParser (description = 'описание приложения')

Отображение описания в конце (эпилог)

Как описание, эпилог может отображаться в конце параметром эпилог. Как и описание, он также должен быть указан в функции argumentParser.

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

Аргументы определяются с помощью add_argument () функция. Он указывает, какие позиционные аргументы / аргументы должны использоваться с скриптом python. По умолчанию программа принимает флаг -help в качестве позиционного аргумента, но можно добавить больше с помощью вышеупомянутой функции. Есть много способов добавить аргументы в приложение.

Однопозиционный аргумент

Единственный позиционный аргумент гарантирует, что программа принимает только один аргумент. В следующем примере в качестве аргумента указывается bld; следовательно, только bld может использоваться в качестве позиционного аргумента при выполнении программы. Если аргумент отсутствует, программа выдаст ошибку с предупреждением «слишком мало аргументов». Особенность позиционного аргумента в том, что его не нужно указывать в терминале при передаче аргументов программе.

парсер.add_argument ("дом")

Позиционный аргумент в определенном типе

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

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

парсер.add_argument ('bld', type = int,
help = "требуется целое число")

Необязательный позиционный аргумент в определенном типе

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

парсер.add_argument ('bld', type = int, nargs = '?',
help = 'Это поле предназначено для необязательного целочисленного значения')

Необязательный аргумент в определенном типе

Разница между аргументом и позиционным аргументом - позиционный аргумент не должен упоминаться, тогда как аргумент должен быть упомянут как флаг вместе со своим значением при выполнении программы. Следующая командная строка содержит точно такие же тексты, за исключением первых двойных строк (дефисов). Они означают, что аргумент является аргументом / флагом, который должен быть упомянут вместе со значением в данном типе при выполнении программы. Сделать использование аргумента обязательным required = True параметр может использоваться в функции add_argument () как один из других аргументов. Как сказано выше, несоблюдение формата вызовет ошибку.

Использование коротких аргументов

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

Условные аргументы

Условные аргументы очень просто использовать в качестве аргументов в предыдущих примерах. Единственное отличие в этом сегменте - указать параметр действия. Он принимает два значения, store_true, а также store_false. Если параметр действия указан как store_true, всякий раз, когда аргумент flag используется в программе, ему присваивается истинное логическое значение; следовательно, его можно использовать как условный аргумент. Применение условных аргументов состоит в том, чтобы создать логический поток выполнения на основе пользовательских входов. Итак, пользователь решает, какой путь он хочет выбрать и как работает программа. Анализируемые команды находятся внутри объекта пространства имен, поэтому он возвращает ключевое слово namespace () после выполнения программы.

парсер.add_argument ('- bld', action = 'store_true',
help = 'условный аргумент')

Указание названия программы

Прежде всего, в примерах не указывается название программы. Вместо этого он просто указывает имя файла сценария вместе со списком принятых аргументов. Преимущество использования имени программы в том, что оно делает программу более удобной для пользователя и независимой от имени скрипта. Это очень полезно, если в выполнении задействовано несколько файлов скриптов. Таким образом, это не будет путать пользователя с неоднозначными именами.

Для этого необходимо использовать следующие две командные строки. В первой строке он указывает имя программы с параметром prog, тогда как этот конкретный параметр может использоваться как переменная, в которой используется имя программы, затем, когда программа выполняется, параметр prog заменяется значением, указанным в argumentsParser ( ) вместе с параметром prog, что в данном примере означает «Nucuta App». Кроме того, важно использовать команду как % (прог) с иначе синтаксический анализ не будет успешным.

парсер = argparse.ArgumentParser (prog = 'Nucuta App')
парсер.add_argument ('- bld', help = 'Это% (prog) s it')

Как проверить условия и составить поток выполнения

Поток выполнения определяется с помощью предложений IF ELSE. Эти предложения направляют поток выполнения в зависимости от условия и его природы. В следующем примере типизированное целочисленное значение присваивается переменной bld, которая находится в объекте arg. Затем он сверяется с предопределенным значением, чтобы проверить его состояние. В этом примере, если введенное значение больше 10, выполняется первый оператор, если введенное значение равно 10, выполняется второй оператор, если введенное значение меньше 10, выполняется последний оператор. Точно так же можно легко управлять процессом выполнения. Как показано в примере, к аргументам можно получить доступ через объект, возвращаемый функцией parse_args () - args.

ЗАКЛЮЧЕНИЕ

С помощью этого руководства вы готовы приступить к синтаксическому анализу всей строки команд в python.  Удачи

Как изменить указатель мыши и размер курсора, цвет и схему в Windows 10
Указатель мыши и курсор в Windows 10 - очень важные аспекты операционной системы. То же самое можно сказать и о других операционных системах, так что,...
Бесплатные движки с открытым исходным кодом для разработки игр для Linux
В этой статье будет рассмотрен список бесплатных игровых движков с открытым исходным кодом, которые можно использовать для разработки 2D- и 3D-игр в L...
Shadow of the Tomb Raider для Linux Учебное пособие
Shadow of the Tomb Raider - двенадцатое дополнение к серии Tomb Raider - франшизе приключенческой игры, созданной Eidos Montreal. Игра была очень хоро...