Hvis du har utviklet et Python -skript eller applikasjon som er ment å først og fremst kjøres i terminalemulatorer eller til og med GUI -apper, kan det å legge til kommandolinje -argumenter forbedre dens brukbarhet, kodelesbarhet, applikasjonsstruktur og generell brukervennlighet av applikasjonen for sluttbrukerne. Disse kommandolinjeargumentene kalles også "alternativer" eller "brytere" og fungerer på samme måte som argumenter du vanligvis ser i bash -skript og andre C / C ++ -baserte programmer.
For å legge til argumenter i Python-skript, må du bruke en innebygd modul som heter “Argparse”. Som navnet antyder, analyserer det kommandolinje argumenter som brukes mens du lanserer et Python -skript eller applikasjon. Disse analyserte argumentene blir også sjekket av "Argparse" -modulen for å sikre at de er av riktig "type". Feil reises hvis det er ugyldige verdier i argumenter.
Bruk av Argparse -modulen kan forstås best gjennom eksempler. Nedenfor er noen kodeprøver som kommer i gang med Argparse -modulen.
Eksempel 1: Generer hjelp til å argumentere og melding
Vurder kodeprøven nedenfor:
Importer ArgparseDen første uttalelsen importerer “Argparse” -modulen. Deretter opprettes en ny forekomst av "ArgumentParser" -objektet og en kort beskrivelse for programmet leveres som et argument. ArgumentParser -objektet er nødvendig for å konvertere kommandolinje argumentverdier til datatyper forstått av Python. Dette gjøres av "Parse_Args" -metoden for ArgumentParser -objektet, som vist i den siste uttalelsen.
Forutsatt at du har lagret kodeprøven som er angitt ovenfor i en fil som heter “Test.py ”, å kjøre kommandoene nedenfor vil få deg til å hjelpe meldinger relatert til programmet.
$ ./test.py -hDu bør få noe utgang som ligner på dette:
Bruk: Test.py [-h]Merk at ingen logikk for å håndtere analyserte argumenter og konvertere dem til objekter er lagt til kodeprøven nevnt ovenfor. Derfor vises ikke hjelpemeldinger for individuelle argumenter i utdataene. Når du legger til logikk for håndtering av verdier av analyserte argumenter i programmet ditt, vil hjelpemeldinger begynne å vise beskrivelse for individuelle argumenter.
Eksempel 2: Håndter et strengargument
For å legge til argumenter som er akseptabelt med Python -skriptet, må du bruke metoden “add_argument”. Ta en titt på følgende kode:
Importer ArgparseEn ny uttalelse er lagt til som viser bruk av "add_argument" -metoden. Ethvert argument lagt til når du lanserer skriptet, vil bli behandlet som et "print_string" -objekt av "ArgumentParser".
Merk at metoden "add_argument" som standard behandler verdier hentet fra argumenter som strenger, slik at du ikke eksplisitt må spesifisere "typen" i dette tilfellet. En standardverdi på "ingen" er også tilordnet tilsatte argumenter, med mindre overstyring.
Ta en titt på hjelpemeldingen:
Bruk: Test.py [-h] [print_string]En av linjene i output sier "posisjonsargumenter". Siden det ikke er definert noe nøkkelord for argument. Posisjonsargumenter er også obligatoriske, med mindre du endrer deres oppførsel manuelt.
For å definere og analysere valgfrie argumenter, kan du bruke “-” (Double Dash) og endre standardverdiene ved å bruke “Standard” -argumentet.
Importer ArgparseNå når du kjører “Test.py ”-skript uten noe argument, bør du få“ en tilfeldig streng.”Som utgang. Du kan også bruke nøkkelordet “-print_string” for å skrive ut en hvilken som helst streng etter eget valg.
$ ./test.PY -TRING_STRING LINUXHINT.com Linuxhint.comMerk at du kan gjøre et valgfritt argument obligatorisk ved å bruke et ekstra "påkrevd = sant" argument.
Til slutt kan du også definere korthåndsversjoner av argumentet ved å bruke "-" (enkeltstrekk) for å redusere verbositet.
Importer ArgparseÅ kjøre følgende kommando skal gi deg samme resultat som ovenfor:
$ ./test.py -p linuxhint.comEksempel 3: Håndter et heltallsargument
For å håndtere argumenter som trenger heltallverdier, må du stille inn "Type" nøkkelordet til "int" for å tillate validering og kaste feil i tilfelle tilstanden ikke er oppfylt.
Importer ArgparsePrøv å kjøre følgende kommando:
$ ./test.py -p linuxhint.comDu bør få en feil som denne:
Bruk: Test.py [-h] [-p print_string]Å levere en heltallverdi vil gi deg riktig resultat:
$ ./test.py -p 1000 1000Eksempel 4: Håndter ekte og falske veksler
Du kan passere argumenter uten noen verdier for å behandle dem som sanne og falske flagg ved å bruke "Handlings" -argumentet.
Importer ArgparseKjør kommandoen nedenfor for å få en enkel "sann" som utgangen:
$ ./test.py -pHvis du kjører skriptet uten "-p" -argumentet, vil en "falsk" verdi bli tildelt i stedet. Verdien "Store_true" for "Handling" -tnøkkelordet tildeler en "ekte" verdi til "print_string" -variabelen når "-p" -argumentet er eksplisitt spesifisert, ellers er falsk tilordnet variabelen.
Eksempel 5: Behandle argumentverdier som liste
Hvis du vil få flere verdier samtidig og lagre dem i listen, må du levere nøkkelordet "NARGS" i følgende format:
Importer ArgparseKjør følgende kommando for å teste koden over:
$ ./test.py -p “a” “b”Du bør få noe utdata slik:
['A', 'B']Konklusjon
"ArgParse" -modulen er ganske omfattende med mange alternativer for å finpusse atferden til kommandolinjeapplikasjoner og analyser brukere leverte verdier. Disse eksemplene berører bare den grunnleggende bruken av "Argparse" -modulen. For avanserte og komplekse applikasjoner kan det hende du trenger forskjellige implementeringer. Besøk den offisielle dokumentasjonen for en full forklaring av modulen.