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

How Parse Arguments Command Line Python



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

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

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







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

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



# Импортиране на модул sys
внос sys

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

Изход:



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





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



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

# Импортиране на модул sys
внос sys

# Отпечатайте типа на променливата, sys.argv
печат(Тип(sys.argv))

# Отпечатайте всеки аргумент от командния ред във всеки ред
печат(„Аргументите на командния ред са:“)
заiв sys.argv:
печат(i)

Изход:

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

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

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

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

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

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

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

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

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

# Импортиране на getopt модул
внос оглавен

# Импортиране на модул sys
внос sys

# Променливата на аргумента на магазина пропуска името на скрипта
argv= sys.argv[1:]

опитвам:
# Определете кратки опции за getopt
настроики,аргументи= върха.върха(argv, 'x: y:')

# отпечатайте опциите и аргумента
печат(настроики)
печат(аргументи)

с изключение върха.GetoptError:

# Отпечатайте съобщението за грешка, ако е предоставена грешна опция
печат(„Предоставена е грешна опция“)

# Прекратете скрипта
sys.изход(2)

Изход:

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

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

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

# Импортиране на getopt модул
внос върха

# Импортиране на модул sys
внос sys

# Променливата на аргумента на магазина пропуска името на скрипта
argv= sys.argv[1:]

# Инициализирайте променливата резултат
резултат=0

опитвам:

# Определете кратки и дълги опции на getopt
настроики,аргументи= върха.върха(sys.argv[1:], 'като', ['add =','sub ='])

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

# Изчислете сутракцията, ако опцията е -s или --sub
elifизбирамв ('-с', '--sub'):
резултат= int(argv[1])-int(argv[2])

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

с изключение върха.GetoptError:

# Отпечатайте съобщението за грешка, ако е предоставена грешна опция
печат(„Предоставена е грешна опция“)

# Прекратете скрипта
sys.изход(2)

Изход:

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

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

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

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

Следващият пример показва използването на argparse модул за четене на аргумент от командния ред. Тук са дефинирани две опции за четене на аргументи от командния ред. Това са ‘-N’ или ‘–name’ и „-Е“ или „–имейл“. Ако потребителят предостави грешен аргумент, той ще покаже грешка с съобщение за използване. Ако потребителят предостави правилни опции с аргументите, той ще покаже стойностите на аргументите. ако потребителят стартира скрипта с опция „–help“, той ще предостави необходимото съобщение за изпълнение на скрипта.

# Импортиране на модул argparse
вносargparse

# Импортиране на модул sys
внос sys

# Декларирайте функция за дефиниране на аргументи от командния ред
defreadOptions(аргументи=sys.argv[1:]):
анализатор =argparse.ArgumentParser(описание=„Списъци с команди за анализ.“)
анализатор.add_argument('-н', '-име', помогне='Въведете името си.')
анализатор.add_argument('-И', '--електронна поща', помогне='Въведете имейла си.')
избира= анализатор.parse_args(аргументи)
връщанеизбира

# Извикайте функцията, за да прочетете стойностите на аргументите
настроики=readOptions(sys.argv[1:])
печат(настроики.име)
печат(настроики.електронна поща)

Изход:

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

Заключение:

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

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