Програмирање

Основи рашчлањивања аргумената командне линије у Питхону

Основи рашчлањивања аргумената командне линије у Питхону

Апликације командне линије су једна од најстаријих и најчешће коришћених врста апликација. Ако сте искусни корисник Линука, можда нисте користили ГУИ алате уместо алата командне линије за обављање истог задатка. На пример, Анацонда, менаџер пакета за питхон, има алате за командну линију под називом Цонда и ГУИ алат под именом анацонда навигатор.

Оно што апликацију Цомманд-лине чини популарном међу програмерима је то што троши врло мало ресурса у поређењу са својим ГУИ колегом и даје боље перформансе.

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

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

Увод

Рашчлањивање аргумената је важан концепт који морамо користити за изградњу моћних и усер-фриендли интерфејса командне линије. Ако сте раније користили апликације командне линије, можда сте приметили да апликацијама командне линије можемо додати аргументе за конфигурисање опција алата.

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

лс наредба у Линуку

Као што видите на слици, на њој се налазе ставке у тренутном директоријуму. Такође можемо користити лс наредбу корисније давањем аргумента као што сам то учинио у следећој наредби.

лс -а

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

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

То можемо учинити на два начина:

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

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

Библиотека Аргпарсе

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

Такође је доступан у стандардној библиотеци питхона, тако да нам није потребна ручна конфигурација. Тхе аргпарсе библиотека је изграђена помоћу оптпарсе библиотека питхона, али аргпарсе је кориснији и погодан за програмере од оптпарсе библиотека.

Практични демо аргпарсе

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

импорт ос импорт аргпарсе парсер = аргпарсе.АргументПарсер ('десцриптион = "Провера постојања путање") парсер.адд_аргумент ("- патх", хелп = "унесите путању да бисте проверили да ли постоји") аргс = парсер.парсе_аргс () инпут_патх = аргс.путања ако ос.пут.исдир (инпут_патх): принт ("Пут постоји и то је директоријум") елиф ос.пут.исфиле (инпут_патх): принт ("Пут постоји и то је датотека") елсе: принт ("Пут не постоји")
Покретањем горњег програма можемо да проверимо да ли путања постоји или не.

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

Такође можете да користите -х аргумент са програмом, који је задати аргумент за приказивање порука помоћи.

подразумевана порука помоћи аргпарсе

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

Подешавање

Погледајмо неке од прилагодби које можемо извршити на нашем интерфејсу командне линије уз помоћ библиотеке аргпарсе.

Помоћ за прилагођену употребу

Када покренемо демо програм који смо раније креирали помоћу параметар, помоћ програма добијамо као излаз који је генерисала библиотека аргпарсе. Ако приметите поруку помоћи, у горњем реду налази се помоћ за употребу која нам показује како да је користимо.У нашем демо програму имамо стандардну помоћ у коришћењу. И даље га можемо лако прилагодити употребом параметра употребе приликом креирања објекта парсера помоћу класе АргументПарсер (). Погледајте доњи код, који ће бити измењен у нашем демо програму.
парсер = аргпарсе.АргументПарсер (опис = "Провера постојања путање", употреба = "цла.пи патх ")
Ево резултата:

помоћ за прилагођену употребу у аргпарсеу

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

Прилагођавање аргумената

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

Додавање подразумеване вредности

Аргументима можемо задати подразумевану вредност користећи задати параметар за адд_аргумент () метода. На пример, погледајте доњи код.

импорт ос импорт аргпарсе парсер = аргпарсе.АргументПарсер (опис = "Провера постојања путање", употреба = "цла.пи патх ") парсер.адд_аргумент ("- патх", хелп = "унесите путању да бисте проверили да ли постоји", дефаулт = "име датотеке.ткт ") аргс = парсер.парсе_аргс () инпут_патх = аргс.путања ако је инпут_патх == Ништа: екит () елиф ос.пут.исдир (инпут_патх): принт ("Пут постоји и то је директоријум") елиф ос.пут.исфиле (инпут_патх): принт ("Пут постоји и то је датотека") елсе: принт ("Пут не постоји")

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

дајући подразумевану вредност аргументима

Постављање захтева за аргументе

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

импорт ос импорт аргпарсе парсер = аргпарсе.АргументПарсер (опис = "Провера постојања путање", употреба = "цла.пи патх ") парсер.адд_аргумент ("- патх", хелп = "унесите путању да бисте проверили да ли постоји", дефаулт = "име датотеке.ткт ", потребно = Труе) аргс = парсер.парсе_аргс () инпут_патх = аргс.путања ако је инпут_патх == Ништа: екит () елиф ос.пут.исдир (инпут_патх): принт ("Пут постоји и то је директоријум") елиф ос.пут.исфиле (инпут_патх): принт ("Пут постоји и то је датотека") елсе: принт ("Пут не постоји")

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

постављање захтева аргумената

Тип аргумента

Такође можемо поставити тип података који се користи у аргументу. На пример, ако нам је потребна путања, требали бисмо дати тип података низа. Ако корисник унесе тип података који није низ, Аргпарсер ће га променити у низ. Да бисте поставили подразумевани тип за аргумент, покрените доњи код.

импорт ос импорт аргпарсе парсер = аргпарсе.АргументПарсер (опис = "Провера постојања путање", употреба = "цла.пи патх ") парсер.адд_аргумент ("- патх", хелп = "унесите путању да бисте проверили да ли постоји", типе = стр) аргс = парсер.парсе_аргс () инпут_патх = аргс.путања ако је инпут_патх == Ништа: екит () елиф ос.пут.исдир (инпут_патх): принт ("Пут постоји и то је директоријум") елиф ос.пут.исфиле (инпут_патх): принт ("Пут постоји и то је датотека") елсе: принт ("Путања не постоји")

Излаз:

наводећи тип података аргумената

Закључак

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

Најбоље игре командне линије за Линук
Командна линија није само ваш највећи савезник када користите Линук - она ​​такође може бити извор забаве јер је можете користити за играње многих заб...
Најбоље апликације за мапирање гамепада за Линук
Ако волите да играте игре на Линуку са гамепадом уместо са типичним системом за унос тастатуре и миша, за вас постоје неке корисне апликације. Многе и...
Корисни алати за Линук играче
Ако волите да играте игре на Линуку, велика је вероватноћа да сте можда користили апликације и услужне програме попут Вине, Лутрис и ОБС Студио за поб...