Piton

Kako raščlaniti argumente na naredbenom retku u Pythonu

Kako raščlaniti argumente na naredbenom retku u Pythonu
Argumenti naredbenog retka koriste se za prosljeđivanje podataka u programu u vrijeme izvođenja programa. Ova je značajka dostupna na većini popularnih programskih jezika. Ali obrada argumenata naredbenog retka različita je za različite jezike. Vrijednosti argumenata daju se s imenom programa u vrijeme pokretanja programa. Python jezik podržava ovu značajku. Kako se raščlanjuju argumenti naredbenog retka u Python skripti prikazano je u ovom članku.

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 modula
import 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 modula
import 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 getopt
uvoz 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 getopt
uvoz 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 argparse
uvoz 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

5 najboljih arkadnih igara za Linux
U današnje vrijeme računala su ozbiljni strojevi koji se koriste za igre na sreću. Ako ne uspijete dobiti novi visoki rezultat, znat ćete na što misli...
Bitka za Wesnoth 1.13.6 Razvoj objavljen
Bitka za Wesnoth 1.13.6 objavljeno prošlog mjeseca, šesto je razvojno izdanje u izdanju 1.13.x series i donosi niz poboljšanja, ponajviše korisničkog ...
Kako instalirati League Of Legends na Ubuntu 14.04
Ako ste ljubitelj League of Legends, ovo je prilika za vas da testirate League of Legends. Imajte na umu da je LOL podržan na PlayOnLinux ako ste kori...