Cum se analizează argumentele pe linia de comandă în Python

How Parse Arguments Command Line Python



Argumentele din linia de comandă sunt utilizate pentru a transmite date în program în momentul executării programului. Această caracteristică este disponibilă în majoritatea limbajelor de programare populare. Dar procesarea argumentelor din linia de comandă este diferită pentru diferite limbi. Valorile argumentelor sunt date cu numele programului în momentul rulării programului. Limbajul Python acceptă această caracteristică. Modul în care sunt analizate argumentele din linia de comandă în scriptul Python este prezentat în acest articol.

Analizarea argumentului din linia de comandă folosind sys modul

Argumentele din linia de comandă sunt stocate într-o listă folosind sys modul. sys.argv este folosit pentru a citi valorile argumentelor din linia de comandă. Numărul total de argumente din linia de comandă poate fi numărat folosind len () funcţie. Utilizarea acestui modul este descrisă în partea articolului.







Exemplul 1: Citirea numărului de argumente și a valorilor argumentelor

Creați un fișier cu următorul script python. Aici, valorile argumentului din linia de comandă sunt stocate în variabilă, argv ca și alte limbi. len () metoda numără numărul total de argumente transmise în momentul executării scriptului. Valorile argumentelor sunt tipărite ca o matrice la sfârșitul scriptului.



# Importați modulul sys
import sys

# Imprimați numărul total de argumente
imprimare(„Argumente totale:”, len(sys.argv))
imprimare(„Valorile argumentului sunt:”, str(sys.argv))

Ieșire:



Scriptul de mai sus este executat aici folosind patru argumente din linia de comandă. Primul argument este numele scriptului, iar altele sunt valori numerice. Următoarea ieșire va apărea după rularea scriptului.





Exemplul 2: Citirea valorilor argumentelor folosind bucla



În exemplul anterior, valorile argumentelor sunt tipărite ca o matrice. Creați un fișier cu următorul script pentru a imprima tipul de variabilă argument și imprimați fiecare valoare argument în fiecare linie folosind bucla for.

# Importați modulul sys
import sys

# Imprimați tipul variabilei, sys.argv
imprimare(tip(sys.argv))

# Imprimați fiecare argument din linia de comandă din fiecare linie
imprimare('Argumentele din linia de comandă sunt:')
pentrueuîn sys.argv:
imprimare(eu)

Ieșire:

Scriptul de mai sus este executat prin furnizarea a trei argumente cu numele scriptului. Următoarea ieșire va apărea după rularea scriptului.

Analizarea argumentului liniei de comandă folosind modulul getopt

Topped modulul este utilizat pentru a analiza argumentele din linia de comandă cu opțiunile. topped () metoda acestui modul este utilizată pentru citirea argumentelor. Această metodă are trei argumente. Primele două argumente sunt obligatorii, iar ultimul argument este opțional. Utilizările acestor argumente sunt date mai jos.

argumente: Conține argumentul preluat din argumentul liniei de comandă.

short_option: Poate fi orice literă care trece odată cu argumentul.

lung_opțiune: Este folosit pentru a defini opțiuni lungi cu două părți. Acestea sunt numele opțiunii și valoarea opțiunii.

Sintaxă: getopt.getopt (args, short_option, [long_option])

Exemplul 3: Citirea valorilor argumentelor folosind opțiuni getopt scurte

acoperit modulul conține mai multe caracteristici decât sys modul. Următorul exemplu arată modul în care pot fi utilizate opțiunile scurte topped () metodă. argv variabila va stoca argumentele din linia de comandă omițând numele scriptului. Apoi, două opțiuni sunt definite în topped () metodă care poate fi utilizată cu argumentul în timpul rulării. Dacă apare o eroare, se va afișa un mesaj de eroare.

# Importați modulul getopt
import acoperit

# Importați modulul sys
import sys

# Stocați variabila argument omițând numele scriptului
argv= sys.argv[1:]

încerca:
# Definiți opțiunile scurte getopt
Opțiuni,argumente= acoperit.acoperit(argv, 'X y:')

# tipăriți opțiunile și argumentul
imprimare(Opțiuni)
imprimare(argumente)

cu exceptia acoperit.GetoptError:

# Imprimați mesajul de eroare dacă este furnizată opțiunea greșită
imprimare(„Opțiunea greșită este furnizată”)

# Încheiați scriptul
sys.Ieșire(2)

Ieșire:

Rulați scriptul fără niciun argument, argumente cu opțiuni corecte și argumente cu opțiunea greșită.

Exemplul 4: Citirea valorilor argumentelor folosind opțiuni getopt scurte și lungi

Acest exemplu arată modul în care opțiunile scurte și lungi pot fi utilizate cu valorile argumentului. Va adăuga două numere când '-la' sau '-adăuga' va fi folosit ca opțiune și scade două numere când „ -s ' sau „ –Sub ’ va fi folosit ca opțiune în timpul rulării.

# Importați modulul getopt
import acoperit

# Importați modulul sys
import sys

# Stocați variabila argument omițând numele scriptului
argv= sys.argv[1:]

# Inițializați variabila de rezultat
rezultat=0

încerca:

# Definiți opțiunile getopt scurte și lungi
Opțiuni,argumente= acoperit.acoperit(sys.argv[1:], 'la fel de', ['add =','sub ='])

# Citiți fiecare opțiune folosind bucla for
pentruopta,furiosînOpțiuni:
# Calculați suma dacă opțiunea este -a sau --add
dacăoptaîn ('-la', '--adăuga'):
rezultat= int(argv[1])+int(argv[2])

# Calculați atracția solară dacă opțiunea este -s sau -sub
elifoptaîn („-s”, „--sub”):
rezultat= int(argv[1])-int(argv[2])

imprimare('Rezultat =',rezultat)

cu exceptia acoperit.GetoptError:

# Imprimați mesajul de eroare dacă este furnizată opțiunea greșită
imprimare(„Opțiunea greșită este furnizată”)

# Încheiați scriptul
sys.Ieșire(2)

Ieșire:

Rulați scriptul fără argumente și opțiuni, argumente cu opțiunea „-a”, argumente cu opțiunea „-s” și argumente cu opțiunea greșită.

Analizarea argumentului din linia de comandă utilizând modulul argparse

Modulul Argparse conține o mulțime de opțiuni pentru a citi argumente din linia de comandă. Valorile implicite ale argumentelor, argumentul cu tipul de date, argumentele poziționale, mesajul de ajutor etc. pot fi furnizate de acest modul.

Exemplul 5: Citirea argumentelor din linia de comandă folosind argparse

Următorul exemplu arată utilizarea argparse modul pentru citirea argumentului din linia de comandă. Aici sunt definite două opțiuni pentru citirea argumentelor din linia de comandă. Acestea sunt „-N” sau „–nume” și „-E” sau „–email”. Dacă utilizatorul furnizează orice argument greșit, atunci acesta va afișa o eroare cu un mesaj de utilizare. Dacă utilizatorul oferă opțiuni corecte cu argumentele, atunci va afișa valorile argumentului. dacă utilizatorul rulează scriptul cu opțiunea „–help”, atunci acesta va furniza mesajul necesar pentru a rula scriptul.

# Importați modulul argparse
importargparse

# Importați modulul sys
import sys

# Declarați funcția pentru a defini argumentele din linia de comandă
defreadOptions(argumente=sys.argv[1:]):
analizor =argparse.ArgumentParser(Descriere=„Listele de comenzi de analiză.”)
analizor.add_argument('-n', '--Nume', Ajutor='Scrie-ti numele.')
analizor.add_argument('-Și', '--e-mail', Ajutor=„Introduceți adresa de e-mail”.)
optează= analizor.parse_args(argumente)
întoarcereoptează

# Apelați funcția pentru a citi valorile argumentului
Opțiuni=readOptions(sys.argv[1:])
imprimare(Opțiuni.Nume)
imprimare(Opțiuni.e-mail)

Ieșire:

Rulați scriptul cu opțiunea greșită, opțiunea corectă și opțiunea de ajutor.

Concluzie:

Diferite moduri de citire a argumentelor din linia de comandă sunt explicate în acest tutorial utilizând trei module python. Sper, acest tutorial va ajuta programatorul care dorește să citească date folosind argumente din linia de comandă în python.

Urmăriți videoclipul autorului: Aici