Python

Как да анализирате аргументи в командния ред в Python

Как да анализирате аргументи в командния ред в Python
Аргументите на командния ред се използват за предаване на данни в програмата по време на изпълнението на програмата. Тази функция е достъпна на повечето популярни езици за програмиране. Но обработката на аргументите от командния ред е различна за различните езици. Стойностите на аргументите се дават с името на програмата по време на стартиране на програмата. Езикът Python поддържа тази функция. Как се анализират аргументите на командния ред в Python script е показано в тази статия.

Анализиране на аргумент от командния ред с използване sys модул

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

Пример 1: Четене на броя на аргументите и стойностите на аргументите

Създайте файл със следния скрипт на python.  Тук стойностите на аргумента от командния ред се съхраняват в променливата, argv като другите езици. len () метод отчита общия брой аргументи, предадени по време на изпълнение на скрипта. Стойностите на аргумента се отпечатват като масив в края на скрипта.

# Импортиране на модул sys
импортиране на sys
# Отпечатайте общия брой аргументи
print ('Общо аргументи:', len (sys.argv))
print ('Стойностите на аргумента са:', str (sys.argv))

Изход:

Горният скрипт се изпълнява тук с помощта на четири аргумента от командния ред. Първият аргумент е името на скрипта, а другите са числови стойности. След стартиране на скрипта ще се появи следният изход.

Пример 2: Четене на стойности на аргументи с помощта на цикъла

В предишния пример стойностите на аргументите се отпечатват като масив. Създайте файл със следния скрипт, за да отпечатате типа на променливата на аргумента и да отпечатате всяка стойност на аргумента във всеки ред, като използвате for цикъл.

# Импортиране на модул sys
импортиране на sys
# Отпечатайте типа на променливата, sys.argv
print (type (sys.argv))
# Отпечатайте всеки аргумент от командния ред във всеки ред
print ('Аргументите на командния ред са:')
за i в sys.argv:
печат (i)

Изход:

Горният скрипт се изпълнява чрез предоставяне на три аргумента с името на скрипта. След стартиране на скрипта ще се появи следният изход.

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

Getopt модул се използва за анализиране на аргументи от командния ред с опциите. getopt () методът на този модул се използва за четене на аргументите. Този метод има три аргумента. Първите два аргумента са задължителни, а последният аргумент не е задължителен. Използването на тези аргументи е дадено по-долу.

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

short_option: Това може да е всяка буква, която преминава заедно с аргумента.

long_option: Използва се за дефиниране на дълги опции с две части. Това са името на опцията и стойността на опцията.

Синтаксис: getopt.getopt (args, short_option, [long_option])

Пример 3: Четене на стойности на аргументи с помощта на кратки опции getopt

getopt модул съдържа повече функции от sys модул. Следващият пример показва как могат да се използват кратки опции getopt () метод. argv променливата ще съхранява аргументите от командния ред, като пропуска името на скрипта. След това в getopt () метод, който може да се използва с аргумента по време на изпълнение. Ако възникне някаква грешка, ще се покаже съобщение за грешка.

# Импортиране на модул getopt
импортиране getopt
# Импортиране на модул sys
импортиране на sys
# Съхранява променлива на аргумент, като пропуска името на скрипта
argv = sys.argv [1:]
 
опитвам:
# Определете кратки опции за getopt
опции, args = getopt.getopt (argv, 'x: y:')
# отпечатайте опциите и аргумента
печат (опции)
печат (аргументи)
 
с изключение на getopt.GetoptError:
# Отпечатайте съобщението за грешка, ако е предоставена грешна опция
print ('Предоставена е грешна опция')
# Прекратяване на скрипта
sys.изход (2)

Изход:

Стартирайте скрипта без аргументи, аргументи с правилни опции и аргументи с грешна опция.

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

Този пример показва как могат да се използват както кратки, така и дълги опции със стойностите на аргумента. Той ще добави две числа, когато „-а“ или „добавяне“ ще се използва като опция и ще извади две числа, когато '-с' или '-под ' ще се използва като опция по време на изпълнение.

# Импортиране на модул getopt
импортиране getopt
# Импортиране на модул sys
импортиране на sys
# Съхранявайте аргумента на променлива, като пропускате името на скрипта
argv = sys.argv [1:]
# Инициализиране на променлива на резултата
резултат = 0
 
опитвам:
 
# Определете кратки и дълги опции на getopt
опции, args = getopt.getopt (sys.argv [1:], 'a: s', ['add =', 'sub ='])
 
# Прочетете всяка опция, използвайки for цикъл
за опция, аргументирайте се в опциите:
# Изчислете сумата, ако опцията е -a или --add
ако се включите ('-a', '--add'):
резултат = int (argv [1]) + int (argv [2])
# Изчислете сутракцията, ако опцията е -s или --sub
elif opt in ('-s', '--sub'):
резултат = int (argv [1]) - int (argv [2])
 
print ('Резултат =', резултат)
с изключение на getopt.GetoptError:
# Отпечатайте съобщението за грешка, ако е предоставена грешна опция
print ('Предоставена е грешна опция')
# Прекратяване на скрипта
sys.изход (2)

Изход:

Стартирайте скрипта без никакви аргументи и опции, аргументи с опция -a, аргументи с опция '-s' и аргументи с грешна опция.

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

Модулът Argparse съдържа много опции за четене на аргументи от командния ред. Стойности на аргументи по подразбиране, аргументът с типа данни, позиционни аргументи, помощно съобщение и т.н. може да бъде предоставен от този модул.

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

Следващият пример показва използването на argparse модул за четене на аргумент от командния ред. Тук са дефинирани две опции за четене на аргументи от командния ред. Това са '-n' или '-name' и '-e' или '-email'. Ако потребителят предостави някакъв грешен аргумент, той ще покаже грешка със съобщение за използване. Ако потребителят предостави правилни опции с аргументите, той ще покаже стойностите на аргументите. ако потребителят стартира скрипта с опцията '-help', той ще предостави необходимото съобщение за стартиране на скрипта.

# Импортиране на модул argparse
внос argparse
# Импортиране на модул sys
импортиране на sys
# Декларирайте функция за дефиниране на аргументи от командния ред
def readOptions (args = sys.argv [1:]):
парсер = argparse.ArgumentParser (description = "Списъци с команди за синтактичен анализ.")
парсер.add_argument ("- n", "--name", help = "Въведете вашето име.")
парсер.add_argument ("- e", "--email", help = "Въведете вашия имейл.")
opts = парсер.parse_args (аргументи)
връщане опции
# Извикайте функцията, за да прочетете стойностите на аргумента
options = readOptions (sys.argv [1:])
печат (опции.име)
печат (опции.електронна поща)

Изход:

Стартирайте скрипта с грешна опция, правилна опция и опция помощ.

Заключение:

Различни начини за четене на аргументи от командния ред са обяснени в този урок с помощта на три модула python. Надявам се, този урок да помогне на програмиста, който иска да чете данни, използвайки аргументи от командния ред в python.

Гледайте видео на автора: тук

Пристанища с отворен код на търговски игрални машини
Безплатни разширения на играта с отворен код и междуплатформени игри могат да се използват за възпроизвеждане на стари, както и някои от доста скорошн...
Най-добрите игри за команден ред за Linux
Командният ред не е само най-големият ви съюзник при използване на Linux - той може да бъде и източник на забавление, защото можете да го използвате, ...
Най-добрите приложения за картографиране на геймпад за Linux
Ако искате да играете игри на Linux с геймпад вместо типична система за въвеждане на клавиатура и мишка, има някои полезни приложения за вас. Много ко...