Како рашчланити аргументе у командној линији у Питхону

How Parse Arguments Command Line Python



Аргументи командне линије се користе за прослеђивање података у програму у време извршења програма. Ова функција је доступна на већини популарних програмских језика. Али обрада аргумената командне линије је различита за различите језике. Вредности аргумената су дате са именом програма у време покретања програма. Питхон језик подржава ову функцију. У овом чланку је приказано како се анализирају аргументи командне линије у Питхон скрипти.

Рашчлањивање аргумента командне линије помоћу сис модул

Аргументи командне линије се чувају на листи помоћу сис модул. сис.аргв користи се за читање вредности аргумената командне линије. Укупан број аргумената командне линије може се избројати помоћу лен () функција. Употреба овог модула описана је у делу чланка.







Пример 1: Читање броја аргумената и вредности аргумената

Направите датотеку са следећом питхон скриптом. Овде се вредности аргумената командне линије чувају у променљивој, аргв попут других језика. лен () метода броји укупан број аргумената прослеђених у време извршавања скрипте. Вредности аргумената се штампају као низ на крају скрипте.



# Увези сис модул
увоз сис

# Одштампајте укупан број аргумената
принт(„Укупно аргумената:“, лен(сис.аргв))
принт(„Вредности аргумената су:“, п(сис.аргв))

Излаз:



Горња скрипта се овде извршава помоћу четири аргумента командне линије. Први аргумент је назив скрипте, а други су нумеричке вредности. Следећи излаз ће се појавити након покретања скрипте.





Пример 2: Читање вредности аргумената помоћу петље



У претходном примеру, вредности аргумената се штампају као низ. Направите датотеку са следећом скриптом да бисте одштампали тип променљиве аргумента и одштампали сваку вредност аргумента у сваком реду помоћу фор петље.

# Увези сис модул
увоз сис

# Одштампајте тип променљиве, сис.аргв
принт(тип(сис.аргв))

# Одштампајте сваки аргумент командне линије у сваком реду
принт(„Аргументи командне линије су:“)
заиу сис.аргв:
принт(и)

Излаз:

Горња скрипта се извршава тако што даје три аргумента са именом скрипте. Следећи излаз ће се појавити након покретања скрипте.

Рашчлањивање аргумента командне линије помоћу гетопт модула

Топпед модул се користи за рашчлањивање аргумената командне линије са опцијама. топпед () метода овог модула користи се за читање аргумената. Ова метода има три аргумента. Прва два аргумента су обавезна, а последњи није обавезан. Употреба ових аргумената дата је у наставку.

аргс: Садржи аргумент преузет из аргумента командне линије.

схорт_оптион: То може бити било које слово које иде уз аргумент.

лонг_оптион: Користи се за дефинисање дугих опција са два дела. Ово су назив опције и вредност опције.

Синтакса: гетопт.гетопт (аргс, схорт_оптион, [лонг_оптион])

Пример 3: Читање вредности аргумената помоћу кратких опција гетопт

на врху модул садржи више функција од сис модул. Следећи пример показује како се могу користити кратке опције топпед () метода. аргв променљива ће сачувати аргументе командне линије изостављајући име скрипте. Даље, две опције су дефинисане у топпед () метод који се може користити са аргументом за време извођења. Ако дође до било које грешке, приказаће се порука о грешци.

# Увези гетопт модул
увоз на врху

# Увези сис модул
увоз сис

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

покушати:
# Дефинишите кратке опције за гетопт
Опције,аргс= на врху.на врху(аргв, 'к: и:')

# одштампајте опције и аргумент
принт(Опције)
принт(аргс)

осим на врху.ГетоптЕррор:

# Одштампајте поруку о грешци ако је наведена погрешна опција
принт(„Понуђена је погрешна опција“)

# Прекините скрипту
сис.излаз(2)

Излаз:

Покрените скрипту без икаквих аргумената, аргументе са исправним опцијама и аргументе са погрешном опцијом.

Пример 4: Читање вредности аргумената коришћењем кратких и дугих опција гетопт

Овај пример показује како се кратке и дуге опције могу користити са вредностима аргумената. Додаће два броја када '-до' или '-додати' ће се користити као опција и одузети два броја када „ -с ’ или ' - суб ' ће се користити као опција за време извођења.

# Увези гетопт модул
увоз на врху

# Увези сис модул
увоз сис

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

# Покрени променљиву резултата
резултат=0

покушати:

# Дефинишите кратке и дуге опције гетопт -а
Опције,аргс= на врху.на врху(сис.аргв[1:], 'као', ['адд =','суб ='])

# Прочитајте сваку опцију користећи фор лооп
заопт,љутуОпције:
# Израчунајте збир ако је опција -а или --адд
акоопту ('-до', '--додати'):
резултат= инт(аргв[1])+инт(аргв[2])

# Израчунајте сунтракцију ако је опција -с или --суб
елифопту ('-с', '--суб'):
резултат= инт(аргв[1])-инт(аргв[2])

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

осим на врху.ГетоптЕррор:

# Одштампајте поруку о грешци ако је наведена погрешна опција
принт(„Понуђена је погрешна опција“)

# Прекините скрипту
сис.излаз(2)

Излаз:

Покрените скрипту без икаквих аргумената и опција, аргумената са опцијом „-а“, аргумената са опцијом „-с“ и аргумената са погрешном опцијом.

Рашчлањивање аргумента командне линије помоћу аргпарсе модула

Аргпарсе модул садржи много опција за читање аргумената командне линије. Овај модул може да обезбеди подразумеване вредности аргумената, аргумент са типом података, позиционе аргументе, поруку помоћи итд.

Пример 5: Читање аргумената командне линије помоћу аргпарсе

Следећи пример приказује употребу аргпарсе модул за читање аргумената командне линије. Овде су дефинисане две опције за читање аргумената командне линије. Су ‘-Н’ или ‘–наме’ и „-Е“ или „–е-пошта“. Ако корисник наведе било који погрешан аргумент, он ће приказати грешку са поруком о употреби. Ако корисник наведе тачне опције са аргументима, он ће приказати вредности аргумената. ако корисник покрене скрипту са опцијом „–хелп“, она ће пружити неопходну поруку за покретање скрипте.

# Увези аргпарсе модул
увозаргпарсе

# Увези сис модул
увоз сис

# Декларишите функцију за дефинисање аргумената командне линије
дефреадОптионс(аргс=сис.аргв[1:]):
парсер =аргпарсе.АргументПарсер(Опис='Листа команди за рашчлањивање.')
парсер.адд_аргумент('-н', '--наме', помоћ='Откуцајте своје име.')
парсер.адд_аргумент('-И', '--емаил', помоћ='Унесите своју е -пошту.')
оптс= парсер.парсе_аргс(аргс)
повратакоптс

# Позовите функцију да прочита вредности аргумената
Опције=реадОптионс(сис.аргв[1:])
принт(Опције.име)
принт(Опције.емаил)

Излаз:

Покрените скрипту са погрешном опцијом, исправном опцијом и опцијом помоћи.

Закључак:

У овом водичу су објашњени различити начини читања аргумената командне линије помоћу три питхон модула. Надам се да ће овај водич помоћи кодеру који жели да чита податке користећи аргументе командне линије у питхону.

Погледајте видео снимак аутора: овде