Аргументы командной строки в Python

Manav Narula 30 Январь 2023 9 Июль 2021
  1. Используйте модуль sys для обработки аргументов командной строки в Python
  2. Используйте модуль getopt для обработки аргументов командной строки в Python
  3. Используйте модуль argparse для обработки аргументов командной строки в Python
Аргументы командной строки в Python

Аргументы командной строки - это те значения, которые предоставляются в окне командной строки при запуске файла. Они удобны, потому что позволяют нам передавать значения во время выполнения программы.

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

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

sys.argv() используется для хранения аргументов, предоставленных в командной строке, в структуре типа списка. Имя файла считается первым аргументом.

Например,

import sys

print("Arguments without the script name ", (len(sys.argv)-1))
print("Arguments given ")
for i in range(1, len(sys.argv)):
    print(sys.argv[i])

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

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

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

Конструктор getopt() используется для инициализации объекта, который анализирует аргументы. Он возвращает getopt.error, если опция не распознается из списка аргументов.

Мы используем его в приведенном ниже коде.

import getopt, sys
lst = sys.argv[1:]
options = "abc:"
long_options = ["A_Message", "B_Message", "C_Message"]

try:

 arguments, values = getopt.getopt(lst, options, long_options)


 for currentArgument, currentValue in arguments:

     if currentArgument in ("-a", "--A_Message"):
         print("Message A received")
     elif currentArgument in ("-b", "--B_Message"):
         print("Message B received")
     elif currentArgument in ("-c", "--C_Message"):
         print("Message C received")

except getopt.error as err:
 print("Error")

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

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

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

Функция ArgumentParser() создает объект парсера. Функция parse.args() считывает аргументы из командной строки.

Например,

import argparse
parser = argparse.ArgumentParser(description = "Which Message?")
parser.add_argument("a")
parser.add_argument("b")
args = parser.parse_args()
print(args.a, args.b)
Author: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn