Python

Python Command Line Parsing Tutorial

Python Command Line Parsing Tutorial
Parsing er en proces til analyse af en række tekster for at finde ud af, hvad programmet skal gøre med de givne kommandoer. Teksten er opdelt i små stykker, kendt som tokens for at opbygge den datastruktur, som compileren eller tolken kender. Udførelsen resulterer i det tilsigtede resultat i slutningen. Python bruges ofte som et sprog til let at analysere kommandolinjer. Denne vejledning bruger dette specielle modul leveret med Python, og det er kendt som argparse. Det specielle ved argparse er, det er ret nemt at bruge, brugervenligt, tilgængeligt med Python og hjælper med at oprette kommandolinjegrænseflader med lethed.

Den følgende vejledning demonstrerer, hvordan man bruger argparse i Ubuntu med Python3, og sørg således for, at begge er let tilgængelige, inden du fortsætter. Hvis Python3 ikke er tilgængelig, kan den installeres med følgende to kommandolinjer:

sudo apt-get opdatering
sudo apt-get installer python3.6

Væsentlig syntaks

Formålet med denne guide er at skitsere kernefunktioner i argparse og hvordan man bruger nogle af dens muligheder. Argparse kræver Python og et notesblok for at skrive kommandoer. Ubuntu har sin egen notesblok kendt som "Teksteditor", som er tilgængelig via Ubuntu-dash. Kommandoerne udføres via terminal.

  1. Start Text Editor via Ubuntu Dash.
  2. Skriv følgende to linjer som de væsentligste koder. Første linje importerer argparse-modulet til kodestykket, hvorimod det andet opretter et argument-parser-objekt, der indeholder al den information, der kræves for at parse kommandoer til Python-datatyper. import argparse
    parser = argparse.ArgumentParser ()
  3. Brug følgende kommando til at konvertere argumentstrenge til objekter. Normalt instanteres objektet og tildeles en variabel, men det er ikke nødvendigt. parser.parse_args ()
  4. Programmet kan udføres i Linux-terminal via python3 med følgende kommando. python3 pscript.py

Visning af appbeskrivelsen

Parameteren til appbeskrivelsen er at angive, hvad applikationen er beregnet til. Når hjælpekommandoen bruges med python-scriptet, vises appbeskrivelsen sammen med de tilgængelige flag, der skal bruges i programmet.  Den følgende linje skal bruges til at angive appbeskrivelsen.

parser = argparse.ArgumentParser (beskrivelse = 'app beskrivelse')

Visning af beskrivelsen i slutningen (epilog)

Som beskrivelsen kan epilogen vises i slutningen med epilog-parameter. Ligesom beskrivelsen skal den også specificeres inden for argumentParser-funktionen.

Sådan bruges argumenter

Argumenter defineres med tilføjelsesargument () fungere. Det specificerer hvilke positionelle argumenter / argumenter, der skal bruges med python-scriptet. Som standard accepterer programmet -help-flag som positionsargument, men mere kan tilføjes ved hjælp af ovennævnte funktion. Der er mange måder at tilføje argumenter til applikationen på.

Enkelt positionelt argument

Argumentet med enkelt position sørger for, at programmet kun accepterer et argument. I det følgende eksempel angiver det bld som argumentet; derfor kan kun bld bruges som et positionsargument, når programmet udføres. Hvis argumentet mangler, kaster programmet en fejl med en "for få argumenter" advarselsmeddelelse. Det specielle ved positionelt argument er, at det ikke behøver at være angivet i terminalen, når man giver argumenter til programmet.

parser.add_argument ("bld")

Positionsargument i en bestemt type

tilføjelsesargument () tager ikke kun ét argument, men også flere argumenter som vist i det følgende eksempel. Hvis der gives flere argumenter, skal de formateres som følger. Det første argument definerer placeringsargumentets navn, det andet er dets type, hvilket betyder den type værdi, der accepteres som argumentet for programmet, den sidste er for beskrivelsen, der kun vises, når du bruger hjælpeflagget.

I det følgende skærmbillede viser det, hvordan programmet nægter at acceptere enhver ikke-integreret værdi som det positionelle argument. Kun et heltal kan indsendes her nu.

parser.add_argument ('bld', type = int,
help = "der kræves en heltalsværdi")

Valgfrit positionelt argument i en bestemt type

Den følgende kommandolinje er den samme som den ovenstående, bortset fra at det gør positioneringsargumentet valgfrit med nargs-parameteren; dermed kan brugeren udelade det, når programmet udføres. Men hvis argumentet blev leveret, skal det være i den korrekte datatype, ellers fortsætter det ikke med at parses som normalt.

parser.add_argument ('bld', type = int, nargs = '?'',
help = 'Dette felt er til valgfri heltalsværdi')

Valgfrit argument i en bestemt type

Forskellen mellem argument og positional argument er positionel argument behøver ikke at nævnes, mens argumentet skal nævnes som et flag sammen med dets værdi, når programmet udføres. Den følgende kommandolinje indeholder nøjagtigt de samme tekster undtagen de førende dobbeltlinjer (bindestreger). De betyder, at argumentet er et argument / flag, der skal nævnes sammen med en værdi i den givne type, når programmet udføres. At gøre brug af argument obligatorisk krævet = Sandt parameter kan bruges i funktionen add_argument () som et af de andre argumenter. Som nævnt ovenfor vil det ikke give en fejl at ikke overholde formatet.

Anvendelse af korte argumenter

Korte argumenter fungerer på samme måde som de længere kolleger. Den eneste forskel er, at det hjælper med at spare plads, når du bruger en stor mængde kommandolinjer, eller når udvikleren ønsker at holde kommandoerne ryddelige og organiseret så meget som muligt. I det følgende eksempel viser det, hvordan programmet reagerer på begge argumenter på samme måde. Når du bruger de korte argumenter, skal du sørge for kun at bruge en enkelt bindestreg, da det er standarden i branchen.

Betingede argumenter

Betingede argumenter er meget enkle at bruge som argumenter i tidligere eksempler. Den eneste forskel i dette segment er at specificere handlingsparameteren. Det accepterer to værdier, ægte butik, og store_falsk. Hvis handlingsparameter er angivet som store_true, tildeles den, når flagargumentet bruges i programmet, med ægte boolsk værdi; derfor kan det bruges som et betinget argument. Anvendelserne af betingede argumenter er at skabe et logisk flow af udførelsen baseret på brugerindgange. Så brugeren beslutter, hvilken vej de vil tage, og hvordan programmet flyder. De parsede kommandoer er inde i namespace-objektet, det er derfor, det returnerer navneområdet namespace (), efter at programmet blev udført.

parser.add_argument ('- bld', action = 'store_true',
hjælp = 'betinget argument')

Angivelse af programmets navn

Frem for alle eksempler angives ikke programmets navn. I stedet angiver det bare scriptfilens navn sammen med listen over accepterede argumenter. Fordelen ved at bruge programnavnet er, at det gør programmet mere brugervenligt og uafhængigt af scriptets navn. Dette er ret nyttigt, hvis flere scriptfiler er involveret i udførelsen. Så det forveksler ikke brugeren med tvetydige navne.

Følgende to kommandolinjer skal bruges til at få det til at ske. På den første linje specificeres programmets navn med prog-parameter, hvorimod denne særlige parameter kan bruges som en variabel, hvor programnavnet bruges, og når programmet udføres, erstattes prog-parameteren med den værdi, der er angivet i argumentParser ( ) fungerer sammen med prog-parameteren, hvilket betyder "Nucuta App" i dette eksempel. Desuden er det vigtigt at bruge kommandoen som % (prog) s Ellers vil parsingen ikke være vellykket.

parser = argparse.ArgumentParser (prog = 'Nucuta App')
parser.add_argument ('- bld', help = 'This% (prog) s it')

Sådan kontrolleres forhold og får udførelsen til at strømme

Udførelsesflowet er defineret med IF ELSE-klausuler. Disse klausuler styrer udførelsesstrømmen afhængigt af tilstanden og dens art. I det følgende eksempel tildeles den indtastede heltal værdi til en variabel, bld, som er i arg objekt. Derefter kontrolleres det mod en foruddefineret værdi for at kontrollere dens tilstand. I dette eksempel, hvis den indtastede værdi er større end 10, udføres den første sætning, hvis den indtastede værdi er lig med 10, udføres den anden sætning, hvis den indtastede værdi er mindre end 10, udføres den sidste sætning. Ligeledes kan udførelsesstrømmen styres let. Som eksemplet viser, kan man få adgang til argumenterne via et objekt, der returneres af funktionen parse_args () - args.

KONKLUSION

Med denne vejledning er du klar til at analysere alle kommandolinjer i python.  Held og lykke

Sådan vises FPS-tæller i Linux-spil
Linux-spil fik et stort skub, da Valve annoncerede Linux-support til Steam-klient og deres spil i 2012. Siden da har mange AAA- og indiespil fundet ve...
Sådan downloades og afspilles Sid Meiers Civilization VI på Linux
Introduktion til spillet Civilization 6 er et moderne udtryk for det klassiske koncept, der blev introduceret i serien af ​​Age of Empires-spil. Ideen...
Sådan installeres og afspilles Doom på Linux
Introduktion til undergang Doom-serien opstod i 90'erne efter frigivelsen af ​​den originale Doom. Det var et øjeblikkeligt hit, og fra den tid af har...