Аргументы командной строки в Python
-
Используйте модуль
sys
для обработки аргументов командной строки в Python -
Используйте модуль
getopt
для обработки аргументов командной строки в Python -
Используйте модуль
argparse
для обработки аргументов командной строки в 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)
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