Python getopt vs argparse sammenlignet

Python getopt vs argparse sammenlignet

Flere koder er nødvendig for å påkalle systemarray -systemet for systemarray i pakken “getopt”, som er mindre effektiv enn pakken “Argparse”. Imidlertid virker det gunstig å kunne tyde, skrive og bruke dette produktet. Denne koden er lett forstått av nybegynnere og krever ingen kommentarer. "Getopt" -modulen er en Command Line Choice -parser med en API som er ment å være kjent for de som har brukt "getopt ()" -funksjonen. Brukere kan tenke på å utnytte "Argparse" -modulen i stedet for "getopt ()" -funksjonen hvis vi ønsker å skrive mindre kode med bedre assistanse og feilmeldinger. Kommandolinjegrensesnittskrivingsverktøyet for Python-programmeringsspråk er "Argparse", en komponent i standardbiblioteket. Å lage brukervennlige kommandolinjekonfigurasjoner i "ArgParse" -modulen er enkel. Programmet spesifiserer argumentene det søker, og deretter "Argparse" bruker hvordan man henter ut disse argumentene fra systemargumentet. I tillegg oppretter "Argparse" -modulen automatisk bruk av brukshjelpsmeldinger.

Syntaks

Syntaksen for Python “getopt” er gitt nedenfor:


Denne syntaksen har nesten tre deler: “Args” refererer til argumentene som vil bli sendt i strengen eller funksjonen, mens den andre delen, “Alternativer”, refererer til skriptet som søker etter en rekke alternativbokstaver. En kolon bør plasseres etter valg som krever et argument. Den siste delen i syntaksen, "long_options", bestemmer listen over navn for de lange alternativene i et strengformat, og et like tegn skal følge valgfrie argumenter.

Syntaksen for Python Argparse er gitt nedenfor:


Syntaksen til "Argparse" skaper først en funksjon og for det andre å lage eller tildele systemargumentene til funksjonen som skal opprettes.

Eksempel 1: Bruke getopt () -modulen for å lage en funksjon for å skaffe argumenter med forkortede bokstaver

Nå vil vi diskutere hvordan vi kan lage vår funksjon for systemargumentene og kalle dem ved forkortelse av bokstaver som er "g" og "h" som vi brukte i denne artikkelen.


Kodebiten for “getopt ()” er forklart her.

La oss diskutere kodeeksemplet som vi brukte der vi først importerte biblioteket med "sys", og det andre biblioteket som vi brukte er "getopt". Så opprettet vi funksjonen vår som heter “Your_name”, som lagrer to variabler i den, som er “sur_name” og “mellomnavn”. På tidspunktet for funksjonsdefinisjonen tildeles ingen verdi til disse to variablene, "sur_name" og "mellomnavn". Så opprettet vi en minnelagringsvariabel “ARGV” som ville lagre “SYS.Argv [2:] ”.

For å bruke fenomenet med å bruke forkortelsesbrevene, brukte vi “getopt.getopt () ”-funksjon på variabel eller minnelagring“ Argv ”og tildelte den to forkortede bokstaver,“ g ”og“ h ”. I "unntatt" -tilstand brukte vi "print ()" -funksjonen for å skrive ut uttalelsen "feil har generert" hvis brukeren trykker på en nøkkel som er en hvilken som helst nøkkel bortsett fra "g" eller "h".

For alternativer i et argument, brukte vi en betinget uttalelse for det formålet der "hvis" -tilstanden vil være relatert til "sur_name" hvis vi trykker på nøkkelen "g" og "annet" -tilstanden vil være koblet til "h" Nøkkel hvis vi trykker på den. Det vil vise "mellomnavn" som er til stede i vårt argument. I det siste brukte vi "print ()" -funksjonen for å skrive ut "sur_name" sammen med "mellomnavn" i output -displayet. Og for å avslutte funksjonen, returnerer vi funksjonen vår i det siste ved å bruke "Your_name ()".


Utgangssnapsbildet vårt viser at vi først brukte "Desktop". Etter å ha skrevet “Desktop”, skriver vi filnavnet “You_name.py ”og trykk enter. Når vi trykker på vår forkortede tast, “G”, viser den “sur_name”, som er “Aqsa”, og deretter trykker du på “H”; Den vil vise “Aqsa Yasin Python” sammen med hele navnet.

Eksempel nr. 2: Bruke getopt () -modulen for å lage en funksjon for å skaffe argumenter fra hele formen for bokstaver



I dette eksemplet på "getopt ()" -modulen har vi importert de samme bibliotekene, "sys" og "getopt", som i forrige eksempel. Funksjonen er opprettet som "Dittnavn". Denne funksjonen lagrer to variabler, “First_name” og “sur_name”, der begge verdiene er tildelt “Ingen”. For å passere systemargumentet, brukte vi “SYS.Argv [1:]. I "prøv" -tilstanden brukte vi fulle bokstaver for navnet. I stedet for “G” og “H”, betraktet vi dem som “First_name” og “Sur_name”. Tilstanden i "unntatt" vil lagre utskriftserklæringen for saken. Hvis feilen blir generert, vil den kjøre bortsett fra betingelse hvis et argument ikke er til stede i kommandolinjen.

Alternativet i argumentfenomen ligner på forrige eksempel. Men her i den betingede uttalelsen om "hvis" og "ellers", vil vi bruke "first_name" og "sur_name" i stedet for "g" og "h" og variabel vi brukte til å lagre den er "f" og "l". Den siste "print ()" -funksjonen brukes nå til å skrive ut "first_name" sammen med "sur_name" og deretter returnere funksjonen ved å bruke "your_name ()".


Når vi åpner kommandolinjen, vil vi gå til "Desktop" ettersom kodefilen lagres på skrivebordet og deretter skrive navnet på filen "Dittnavn.py ”hvor“.py ”brukes som en utvidelsesfil for Python. Det vil returnere “First_name” som “AQSA” og “SUR_NAME” som “Yasin”. På grunn av "Print ()" -funksjonen som ble brukt i den siste linjen, vil den skrive ut navnet "Aqsa Yasin" igjen med kapitaliserte bokstaver .

Eksempel nr. 3: Bruke ArgParse () -modulen for å lage et kommandolinjeprogram som aksepterer relaterte argumenter

Å sende argumentet fra kommandolinjen "Argparse" -modul er langt bedre for brukerne av "getopt" -modulen. For å forklare "Argparse" -modulen, brukte vi følgende trinn, som er gitt nedenfor:


Vi opprettet først en fil i systemet vårt med navnet “Argparse.py ”som filen er relatert til Python, så vi brukte“.py ”utvidelse. Denne filen, “Argparse.py ”, lagrer Python -koden. Vi åpner kommandolinjeterminalen, og først vil vi sette inn denne kommandoen for å nå den filen “Nano Argparse.py ”.


Dette er kodebiten i filen vår “Argparse.py ”. Nå, hvis vi diskuterer denne koden, kan vi se i starten at vi først har importert biblioteket med "Argparse". Her, for å ha gitt to argumenter i koden, brukte vi totalt to argumenter som "Command_1" og "Command_2". “Command_1” tildelte argumentverdiene er “England,“ Australia ”og“ Wales ”. “Command_2” tildelte argumentverdier som “Namibia” og “Kina”. Så opprettet vi en "parser" for å ha gitt argumentet med beskrivelsen av "liste over land".

Argumentet som er gitt inn er “Command”, der typen vi brukte er “String”. Og så opprettet vi “Args”, som vil utføre argumentets analyser av “Parser.parse_args () ”. Deretter opprettet vi "land", som vil holde argumentene som "kommando", og så skriver vi ut begge argumentene ved å bruke "print ()" -funksjonen.


For å vise det første argumentet som er lagret i “Command_1”, skriver vi de tidligere linjene i kommandolinjeterminalen.


Etter å ha gitt kommandoen, vil den vise argumentene i “Command_1”, som er “England”, “Australia” og “Wales”.


For å nå argumentene i “Command_2”, skriver vi “Argparse.PY Command_2 ”og trykk Enter i CMD.


Etter å ha trykket Enter vil den vise argumentene i “Command_2”, som er “Namibia” og “Kina”.


Hvis vi vil nå beskrivelsen av filen vår “Argparse.py ”, vi vil skrive dette“ argparse.py -h ”i kommandolinjen.


Deretter vil den vise hele beskrivelsen av Python -filen vår der den betegner "liste over land" som beskrivelse, og posisjonsargumenter her er "kommando".

Konklusjon

I denne artikkelen dekket vi sammenligningen mellom to moduler av Python, som er "Getopt" og "Argparse". Som vi har sett gjennom diskusjonen gjennom eksemplene våre, bestemte vi at Python “Argparse” er en mer effektiv og kraftig modul enn “getopt”. De to første eksemplene dekker Python “getopt” -modul, og de to andre eksemplene dekker “Argparse” for systemargumentene.