Raščlanjivanje argumenta naredbenog retka pomoću sys modul
Argumenti naredbenog retka spremaju se na 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. Korištenje ovog modula opisano je u dijelu članka.
Primjer 1: Očitavanje broja argumenata i vrijednosti argumenata
Stvorite datoteku sa sljedećom skriptom python. Ovdje su vrijednosti argumenata naredbenog retka pohranjene u varijabli, argv poput ostalih jezika. len () metoda broji ukupan broj argumenata proslijeđenih u vrijeme izvršavanja skripte. Vrijednosti argumenta ispisuju se kao niz na kraju skripte.
# Uvoz sys modulaimport sys
# Ispis ukupnog broja argumenata
print ('Ukupno argumenata:', len (sys.argv))
print ('Vrijednosti argumenta su:', str (sys.argv))
Izlaz:
Gornja se skripta ovdje izvršava pomoću četiri argumenta naredbenog retka. Prvi argument je ime skripte, a ostali su numeričke vrijednosti. Sljedeći će se izlaz pojaviti 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 ispis svake vrijednosti argumenta u svaki redak pomoću for petlje.
# Uvoz sys modulaimport sys
# Ispišite vrstu varijable, sys.argv
ispis (vrsta (sys.argv))
# Ispišite svaki argument naredbenog retka u svaki redak
print ('Argumenti naredbenog retka su:')
jer ja u sysu.argv:
ispis (i)
Izlaz:
Gornja skripta se izvršava davanjem tri argumenta s imenom skripte. Sljedeći će se izlaz pojaviti nakon pokretanja skripte.
Raščlanjivanje argumenta naredbenog retka pomoću modula getopt
Getopt modul koristi se za raščlanjivanje argumenata naredbenog retka s opcijama. getopt () metoda ovog modula koristi se za čitanje argumenata. Ova metoda ima tri argumenta. Prva dva argumenta su obavezna, a zadnji argument nije obavezan. Upotreba ovih argumenata data je u nastavku.
argumenti: Sadrži argument preuzet iz argumenta naredbenog retka.
kratka_opcija: To može biti bilo koje slovo koje prolazi 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
getopt modul sadrži više značajki od sys modul. Sljedeći primjer pokazuje kako se mogu koristiti kratke opcije getopt () metoda. argv varijabla će pohraniti argumente naredbenog retka izostavljanjem imena skripte. Dalje, dvije opcije su definirane u getopt () metoda koja se može koristiti s argumentom u vrijeme izvođenja. Ako se dogodi bilo kakva pogreška, prikazat će se poruka o pogrešci.
# Uvoz modula getoptuvoz getopt
# Uvoz sys modula
import sys
# Spremi varijablu argumenta bez imena skripte
argv = sys.argv [1:]
probati:
# Definirajte kratke opcije getopt
opcije, args = getopt.getopt (argv, 'x: y:')
# ispišite opcije i argument
ispis (opcije)
ispis (argumenti)
osim getopta.GetoptError:
# Ispišite poruku pogreške ako je navedena pogrešna opcija
print ('Navedena je pogrešna opcija')
# Prekini skriptu
sys.izlaz (2)
Izlaz:
Pokrenite skriptu bez ikakvih argumenata, argumenata s ispravnim opcijama i argumenata s pogrešnom opcijom.
Primjer 4: Čitanje vrijednosti argumenata pomoću kratkih i dugih opcija dobivanja
Ovaj primjer pokazuje kako se i kratke i duge opcije mogu koristiti s vrijednostima argumenata. Dodati će dva broja kada '-a' ili '-dodati' koristit će se kao opcija i oduzeti dva broja kada '-s ili '-pod' koristit će se kao opcija u vrijeme izvođenja.
# Uvoz modula getoptuvoz getopt
# Uvoz sys modula
import sys
# Spremi varijablu argumenta bez imena skripte
argv = sys.argv [1:]
# Inicijalizirajte varijablu rezultata
rezultat = 0
probati:
# Definirajte kratke i duge opcije getopt
opcije, args = getopt.getopt (sys.argv [1:], 'a: s', ['add =', 'sub ='])
# Pročitajte svaku opciju pomoću petlje for
za opciju, argument u opcijama:
# Izračunajte zbroj ako je opcija -a ili --add
ako se uključite ('-a', '--add'):
rezultat = int (argv [1]) + int (argv [2])
# Izračunajte suntrakciju ako je opcija -s ili --sub
elif opt in ('-s', '--sub'):
rezultat = int (argv [1]) - int (argv [2])
ispis ('Rezultat =', rezultat)
osim getopta.GetoptError:
# Ispišite poruku pogreške ako je navedena pogrešna opcija
print ('Navedena je pogrešna opcija')
# Prekini 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.
Raščlanjivanje argumenta naredbenog retka pomoću modula argparse
Modul Argparse sadrži puno opcija za čitanje argumenata naredbenog retka. Zadane vrijednosti argumenata, argument s vrstom podataka, položajni argumenti, poruka pomoći itd. može pružiti ovaj modul.
Primjer 5: Čitanje argumenata naredbenog retka pomoću argparse
Sljedeći primjer prikazuje upotrebu argparse modul za čitanje argumenta naredbenog retka. Ovdje su definirane dvije opcije za čitanje argumenata naredbenog retka. Ovi su '-n' ili '-name' i '-e' ili '-email'. Ako korisnik navede bilo koji pogrešan argument, tada će prikazati pogrešku s porukom o upotrebi. Ako korisnik pruži 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.
# Uvoz modula argparseuvoz argparse
# Uvoz sys modula
import sys
# Deklarirajte funkciju za definiranje argumenata naredbenog retka
def readOptions (args = sys.argv [1:]):
raščlanjivač = argparse.ArgumentParser (description = "Popis naredbi za raščlanjivanje.")
parser.add_argument ("- n", "--name", help = "Upišite svoje ime.")
parser.add_argument ("- e", "--email", help = "Upišite svoju e-poštu.")
opts = parser.analizirati_args (args)
povratne opcije
# Pozovite funkciju da pročita vrijednosti argumenta
options = readOptions (sys.argv [1:])
ispis (opcije.Ime)
ispis (opcije.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 autorski video: ovdje