Питхон

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

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

Ако сте развили Питхон скрипту или апликацију која треба да се примарно покреће у емулаторима терминала или чак у ГУИ апликацијама, додавање аргумената командне линије може побољшати њену употребљивост, читљивост кода, структуру апликације и укупну корисничку пријаву апликације за крајње кориснике. Ови аргументи наредбеног ретка називају се и „опције“ или „прекидачи“ и раде слично аргументима које обично видите у басх скриптама и другим програмима заснованим на Ц / Ц ++.

Да бисте додали аргументе у Питхон скрипте, мораћете да користите уграђени модул под називом „аргпарсе“. Као што и само име говори, анализира аргументе командне линије који се користе приликом покретања Питхон скрипте или апликације. Ове рашчлањене аргументе такође проверава модул „аргпарсе“ како би се осигурало да су одговарајућег „типа“. Грешке се појављују ако у аргументима постоје неваљане вредности.

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

Пример 1: Генеришите аргумент и помоћ

Размотрите узорак кода у наставку:

увоз аргпарсе
парсер = аргпарсе.АргументПарсер (десцриптион = 'Тест програм.')
аргс = парсер.парсе_аргс ()

Прва изјава увози модул „аргпарсе“. Даље се креира нова инстанца објекта „АргументПарсер“ и као аргумент се даје кратак опис програма. Објекат АргументПарсер потребан је за претварање вредности аргумената командне линије у типове података које Питхон разуме. То се ради методом “парсе_аргс” објекта АргументПарсер, као што је приказано у последњој изјави.

Под претпоставком да сте сачували горе наведени узорак кода у датотеци названој „тест.пи ”, извођењем наредби доле добићете поруке помоћи повезане са програмом.

$ ./тест.пи -х
$ ./тест.пи - помоћ

Требали бисте добити неке сличне резултате:

употреба: тест.пи [-х]
Тест програм.
необавезни аргументи:
-х, --хелп прикажи ову поруку помоћи и изађи

Имајте на уму да у горе поменути узорак кода није додата логика за руковање рашчлањеним аргументима и њихово претварање у објекте. Дакле, поруке помоћи за појединачне аргументе нису приказане у излазу. Једном када додате логику за руковање вриједностима рашчлањених аргумената у свој програм, поруке помоћи ће почети приказивати опис појединачних аргумената.

Пример 2: Руковање низовним аргументом

Да бисте додали аргументе прихватљиве за вашу питхон скрипту, треба да користите методу „адд_аргумент“. Погледајте следећи код:

увоз аргпарсе
парсер = аргпарсе.АргументПарсер (десцриптион = 'Тест програм.')
парсер.адд_аргумент ("принт_стринг", хелп = "Штампа наведени аргумент.")
аргс = парсер.парсе_аргс ()
испис (аргс.принт_стринг)

Додата је нова изјава која показује употребу методе „адд_аргумент“. Сваки аргумент додат при покретању скрипте, „АргументПарсер“ ће третирати као објект „принт_стринг“.

Имајте на уму да метода „адд_аргумент“ подразумевано вредности које се преузимају из аргумената третира као низове, тако да у овом случају не морате изричито навести „тип“. Задана вредност „Ноне“ се такође додељује додатим аргументима, осим ако је поништено.

Још једном погледајте поруку помоћи:

употреба: тест.пи [-х] [принт_стринг]
Тест програм.
позициони аргументи:
принт_стринг Штампа испоручени аргумент.
необавезни аргументи:
-х, --хелп прикажи ову поруку помоћи и изађи

Један од редова у излазу каже „позициони аргументи“. Будући да није дефинисана ниједна кључна реч за аргумент, тренутно се аргумент третира као „позициони аргумент“ где редослед и позиција испоручених аргумената имају директан утицај на програм. Позицијски аргументи су такође обавезни, осим ако ручно не промените њихово понашање.

Да бисте дефинисали и рашчланили опционалне аргументе, можете користити „-“ (двострука цртица) и променити њихове подразумеване вредности помоћу аргумента „дефаулт“.

увоз аргпарсе
парсер = аргпарсе.АргументПарсер (десцриптион = 'Тест програм.')
парсер.адд_аргумент ("- принт_стринг", хелп = "Штампа наведени аргумент.", дефаулт =" Насумични низ.”)
аргс = парсер.парсе_аргс ()
испис (аргс.принт_стринг)

Сада када покренете „тест.пи ”скрипту без икаквог аргумента, требали бисте добити„ Насумични низ.”Као излаз. По жељи такође можете да користите кључну реч „-принт_стринг“ за штампање било ког низа по вашем избору.

$ ./тест.пи --принт_стринг ЛинукХинт.цом ЛинукХинт.цом

Имајте на уму да необавезни аргумент можете учинити обавезним коришћењем додатног аргумента „обавезно = тачно“.

И на крају, такође можете дефинисати скраћене верзије аргумента помоћу „-“ (једна цртица) да бисте смањили опширност.

увоз аргпарсе
парсер = аргпарсе.АргументПарсер (десцриптион = 'Тест програм.')
парсер.адд_аргумент (“- п”, “--принт_стринг”, хелп = “Штампа наведени аргумент.", дефаулт =" Насумични низ.”)
аргс = парсер.парсе_аргс ()
испис (аргс.принт_стринг)

Покретање следеће наредбе требало би да вам да исти резултат као горе:

$ ./тест.пи -п ЛинукХинт.цом

Пример 3: Обрадите целобројни аргумент

Да бисте обрађивали аргументе којима су потребне целобројне вредности, морате кључну реч „типе“ поставити на „инт“ да бисте омогућили проверу ваљаности и бацали грешке у случају да услов није испуњен.

увоз аргпарсе
парсер = аргпарсе.АргументПарсер (десцриптион = 'Тест програм.')
парсер.адд_аргумент ("- п", "--принт_стринг", хелп = "Штампа наведени аргумент.", типе = инт)
аргс = парсер.парсе_аргс ()
испис (аргс.принт_стринг)

Покушајте да покренете следећу команду:

$ ./тест.пи -п ЛинукХинт.цом

Требали бисте добити овакву грешку:

употреба: тест.пи [-х] [-п ПРИНТ_СТРИНГ]
тест.пи: грешка: аргумент -п / - принт_стринг: неваљана инт вредност: 'ЛинукХинт.цом '

Навођењем целобројне вредности добићете тачан резултат:

$ ./тест.пи -п 1000 1000

Пример 4: Руковање тачним и лажним прекидачима

Можете проследити аргументе без икаквих вредности да бисте их третирали као тачне и нетачне заставице користећи аргумент „акција“.

увоз аргпарсе
парсер = аргпарсе.АргументПарсер (десцриптион = 'Тест програм.')
парсер.адд_аргумент ("- п", "--принт_стринг", хелп = "Штампа наведени аргумент.", ацтион =" сторе_труе ")
аргс = парсер.парсе_аргс ()
испис (аргс.принт_стринг)

Покрените наредбу доле да бисте добили једноставно „Труе“ као излаз:

$ ./тест.пи -п

Ако скрипту покренете без аргумента „-п“, уместо ње додељује се вредност „Нетачно“. Вредност „сторе_труе“ кључне речи „ацтион“ додељује променљивој „принт_стринг“ вредност „Труе“ кад год је изричито наведен аргумент „-п“, у супротном променљивој се додељује Фалсе.

Пример 5: Вредности аргумента третирајте као списак

Ако желите да добијете више вредности одједном и сачувате их на листи, треба да наведете кључну реч „наргс“ у следећем формату:

увоз аргпарсе
парсер = аргпарсе.АргументПарсер (десцриптион = 'Тест програм.')
парсер.адд_аргумент ("- п", "--принт_стринг", хелп = "Штампа наведени аргумент.", наргс = '*')
аргс = парсер.парсе_аргс ()
испис (аргс.принт_стринг)

Покрените следећу команду да бисте тестирали горњи код:

$ ./тест.пи -п „а“ „б“

Требали бисте добити овакав излаз:

['а', 'б']

Закључак

Модул „аргпарсе“ је прилично свеобухватан са мноштвом опција за подешавање понашања апликација командне линије и рашчлањивање вредности које испоручују корисници. Ови примери додирују само основну употребу модула „аргпарсе“. За напредне и сложене апликације можда ће вам требати различите примене. Посетите званичну документацију за цело објашњење модула.

Битка за Веснотх 1.13.6 Развој објављен
Битка за Веснотх 1.13.6 објављено прошлог месеца, шесто је развојно издање у издању 1.13.к сериес и доноси низ побољшања, посебно корисничког интерфеј...
Како инсталирати Леагуе Оф Легендс на Убунту 14.04
Ако сте љубитељ Леагуе оф Легендс, ово је прилика да тестирате Леагуе оф Легендс. Имајте на уму да је ЛОЛ подржан на ПлаиОнЛинук ако сте корисник лину...
Инсталирајте најновију ОпенРА Стратеги Гаме на Убунту Линук
ОпенРА је Либре / Фрее Реал Тиме стратешки механизам који ствара ране Вествоод игре попут класичне Цомманд & Цонкуер: Ред Алерт. Дистрибуирани модови ...