Raščlanjivanje argumenta naredbenog retka pomoću sys modul
Argumenti naredbenog retka spremaju se u popis pomoću sys modul. sys.argv koristi se za čitanje vrijednosti argumenata naredbenog retka. Ukupan broj argumenata naredbenog retka može se izbrojiti pomoću len () funkcija. Upotreba ovog modula opisana je u dijelu članka.
Primjer 1: Očitavanje broja argumenata i vrijednosti argumenata
Napravite datoteku sa sljedećom python skriptom. Ovdje se vrijednosti argumenata naredbenog retka pohranjuju u varijablu, argv poput drugih jezika. len () metoda broji ukupan broj argumenata proslijeđenih u vrijeme izvršavanja skripte. Vrijednosti argumenata ispisuju se kao niz na kraju skripte.
# Uvezi sys modul
uvoz sys
# Ispišite ukupan broj argumenata
ispisati('Ukupno argumenata:', len(sys.argv))
ispisati('Vrijednosti argumenata su:', str(sys.argv))
Izlaz:
Gornja se skripta ovdje izvršava pomoću četiri argumenta naredbenog retka. Prvi argument je naziv skripte, a drugi su numeričke vrijednosti. Sljedeći izlaz pojavit će se nakon pokretanja skripte.
Primjer 2: Čitanje vrijednosti argumenata pomoću petlje
U prethodnom primjeru vrijednosti argumenata ispisuju se kao niz. Stvorite datoteku sa sljedećom skriptom za ispis vrste varijable argumenta i ispišite svaku vrijednost argumenta u svakom retku pomoću for petlje.
# Uvezi sys moduluvoz sys
# Ispišite vrstu varijable, sys.argv
ispisati(tip(sys.argv))
# Ispišite svaki argument naredbenog retka u svaki redak
ispisati('Argumenti naredbenog retka su:')
zaiu sys.argv:
ispisati(i)
Izlaz:
Gornja se skripta izvršava pružanjem tri argumenta s imenom skripte. Sljedeći izlaz pojavit će se nakon pokretanja skripte.
Raščlanjivanje argumenta naredbenog retka pomoću getopt modula
Na vrhu module koristi se za raščlanjivanje argumenata naredbenog retka s opcijama. na vrhu () metoda ovog modula koristi se za čitanje argumenata. Ova metoda ima tri argumenta. Prva dva argumenta su obavezna, a posljednji nije obavezan. U nastavku su navedene uporabe ovih argumenata.
args: Sadrži argument preuzet iz argumenta naredbenog retka.
short_option: To može biti bilo koje slovo koje ide uz argument.
long_option: Koristi se za definiranje dugih opcija s dva dijela. To su naziv opcije i vrijednost opcije.
Sintaksa: getopt.getopt (args, short_option, [long_option])
Primjer 3: Čitanje vrijednosti argumenata pomoću kratkih opcija getopt
na vrhu modul sadrži više značajki nego sys modul. Sljedeći primjer pokazuje kako se kratke opcije mogu koristiti u na vrhu () metoda. argv varijabla će pohraniti argumente naredbenog retka izostavljajući naziv skripte. Zatim su dvije opcije definirane u na vrhu () metoda koja se može koristiti s argumentom za vrijeme izvođenja. Ako dođe do bilo koje pogreške, prikazat će se poruka o pogrešci.
# Uvezi getopt moduluvoz na vrhu
# Uvezi sys modul
uvoz sys
# Spremna varijabla argumenta izostavlja naziv skripte
argv= sys.argv[1:]
probati:
# Definirajte kratke opcije getopta
mogućnosti,args= na vrhu.na vrhu(argv, 'x: y:')
# ispišite opcije i argument
ispisati(mogućnosti)
ispisati(args)
osim na vrhu.GetoptError:
# Ispišite poruku o pogrešci ako je navedena pogrešna opcija
ispisati('Ponuđena je pogrešna opcija')
# Prekinite skriptu
sys.Izlaz(2)
Izlaz:
Pokrenite skriptu bez ikakvih argumenata, argumente s ispravnim opcijama i argumente s pogrešnom opcijom.
Primjer 4: Čitanje vrijednosti argumenata pomoću kratkih i dugih opcija getopt
Ovaj primjer pokazuje kako se kratke i duge opcije mogu koristiti s vrijednostima argumenta. Dodati će dva broja kada '-do' ili '-dodati' koristit će se kao opcija i oduzeti dva broja kada ' -s ' ili ' -pod' će se koristiti kao opcija za vrijeme izvođenja.
# Uvezi getopt moduluvoz na vrhu
# Uvezi sys modul
uvoz sys
# Spremna varijabla argumenta izostavlja naziv skripte
argv= sys.argv[1:]
# Pokreni varijablu rezultata
proizlaziti=0
probati:
# Definirajte kratke i duge opcije getopta
mogućnosti,args= na vrhu.na vrhu(sys.argv[1:], 'kao', ['dodaj =','sub ='])
# Pročitajte svaku opciju koristeći for loop
zaodlučiti se,ljutuopcije:
# Izračunajte zbroj ako je opcija -a ili --add
akoodlučiti seu ('-do', '--dodati'):
proizlaziti= int(argv[1])+int(argv[2])
# Izračunajte suntrakciju ako je opcija -s ili --sub
elifodlučiti seu ('-s', '--pod'):
proizlaziti= int(argv[1])-int(argv[2])
ispisati('Rezultat =',proizlaziti)
osim na vrhu.GetoptError:
# Ispišite poruku o pogrešci ako je navedena pogrešna opcija
ispisati('Ponuđena je pogrešna opcija')
# Prekinite skriptu
sys.Izlaz(2)
Izlaz:
Pokrenite skriptu bez ikakvih argumenata i opcija, argumenata s opcijom '-a', argumenata s opcijom '-s' i argumenata s pogrešnom opcijom.
Analiza argumenta naredbenog retka pomoću modula argparse
Modul Argparse sadrži mnogo mogućnosti za čitanje argumenata naredbenog retka. Zadane vrijednosti argumenata, argument s tipom podataka, pozicijski argumenti, poruka pomoći itd. Mogu se dati ovim modulom.
Primjer 5: Čitanje argumenata naredbenog retka pomoću argparse
Sljedeći primjer prikazuje upotrebu argparse modul za čitanje argumenata naredbenog retka. Ovdje su definirane dvije mogućnosti za čitanje argumenata naredbenog retka. Ovi su ‘-N’ ili ‘–name’ i ‘-E’ ili ‘–email’. Ako korisnik navede pogrešan argument, tada će se prikazati pogreška s porukom o upotrebi. Ako korisnik navede ispravne opcije s argumentima, tada će prikazati vrijednosti argumenata. ako korisnik pokrene skriptu s opcijom ‘–help’ tada će pružiti potrebnu poruku za pokretanje skripte.
# Uvezi argparse moduluvozargparse
# Uvezi sys modul
uvoz sys
# Deklarirajte funkciju za definiranje argumenata naredbenog retka
defreadOptions(args=sys.argv[1:]):
parser =argparse.ArgumentParser(opis='Popisi naredbi za raščlanjivanje.')
parser.add_argument('-n', '--Ime', Pomozite='Upišite svoje ime.')
parser.add_argument('-I', '--email', Pomozite='Upišite svoju e -poštu.')
odlučuje= parser.parse_args(args)
povratakodlučuje
# Pozovite funkciju za čitanje vrijednosti argumenata
mogućnosti=readOptions(sys.argv[1:])
ispisati(mogućnosti.Ime)
ispisati(mogućnosti.e -mail)
Izlaz:
Pokrenite skriptu s pogrešnom opcijom, ispravnom opcijom i opcijom pomoći.
Zaključak:
Razni načini čitanja argumenata naredbenog retka objašnjeni su u ovom vodiču pomoću tri python modula. Nadam se da će ovaj vodič pomoći koderu koji želi čitati podatke koristeći argumente naredbenog retka u pythonu.
Pogledajte video snimak autora: ovdje