Come analizzare gli argomenti sulla riga di comando in Python

How Parse Arguments Command Line Python



Gli argomenti della riga di comando vengono utilizzati per passare i dati nel programma al momento dell'esecuzione del programma. Questa funzione è disponibile sulla maggior parte dei linguaggi di programmazione più diffusi. Ma l'elaborazione degli argomenti della riga di comando è diversa per le diverse lingue. I valori degli argomenti vengono forniti con il nome del programma al momento dell'esecuzione del programma. Il linguaggio Python supporta questa funzionalità. In questo articolo viene mostrato come vengono analizzati gli argomenti della riga di comando nello script Python.

Analisi dell'argomento della riga di comando usando sistema modulo

Gli argomenti della riga di comando sono memorizzati in un elenco usando sistema modulo. sys.argv viene utilizzato per leggere i valori degli argomenti della riga di comando. Il numero totale di argomenti della riga di comando può essere contato usando len () funzione. L'uso di questo modulo è descritto nella parte dell'articolo.







Esempio 1: lettura del numero di argomenti e dei valori degli argomenti

Crea un file con il seguente script Python. Qui, i valori degli argomenti della riga di comando sono memorizzati nella variabile, argv come altre lingue. len () Il metodo conta il numero totale di argomenti passati al momento dell'esecuzione dello script. I valori degli argomenti vengono stampati come un array alla fine dello script.



# Importa modulo sys
importare sistema

# Stampa il numero totale di argomenti
Stampa('Totale argomenti:', len(sistema.argv))
Stampa('I valori degli argomenti sono:', P(sistema.argv))

Produzione:



Lo script precedente viene eseguito qui utilizzando quattro argomenti della riga di comando. Il primo argomento è il nome dello script e gli altri sono valori numerici. Il seguente output apparirà dopo aver eseguito lo script.





Esempio 2: lettura dei valori degli argomenti utilizzando il ciclo



Nell'esempio precedente, i valori degli argomenti vengono stampati come un array. Creare un file con il seguente script per stampare il tipo di variabile dell'argomento e stampare ogni valore di argomento in ogni riga utilizzando il ciclo for.

# Importa modulo sys
importare sistema

# Stampa il tipo della variabile, sys.argv
Stampa(genere(sistema.argv))

# Stampa ogni argomento della riga di comando in ogni riga
Stampa('Gli argomenti della riga di comando sono:')
perioin sistema.argv:
Stampa(io)

Produzione:

Lo script sopra viene eseguito fornendo tre argomenti con il nome dello script. Il seguente output apparirà dopo aver eseguito lo script.

Analisi dell'argomento della riga di comando utilizzando il modulo getopt

condita module viene utilizzato per analizzare gli argomenti della riga di comando con le opzioni. sormontato () Il metodo di questo modulo viene utilizzato per leggere gli argomenti. Questo metodo ha tre argomenti. I primi due argomenti sono obbligatori e l'ultimo argomento è facoltativo. Gli usi di questi argomenti sono riportati di seguito.

argomenti: Contiene l'argomento preso dall'argomento della riga di comando.

opzione_corta: Può essere qualsiasi lettera che passa con l'argomento.

opzione_lunga: Viene utilizzato per definire opzioni lunghe con due parti. Questi sono il nome dell'opzione e il valore dell'opzione.

Sintassi: getopt.getopt(argomenti, short_option, [long_option])

Esempio 3: lettura dei valori degli argomenti utilizzando le opzioni getopt brevi

sormontato il modulo contiene più funzioni di sistema modulo. L'esempio seguente mostra come possono essere utilizzate le opzioni brevi in sormontato () metodo. argv variabile memorizzerà gli argomenti della riga di comando omettendo il nome dello script. Successivamente, due opzioni sono definite nel sormontato () metodo che può essere utilizzato con l'argomento in fase di esecuzione. Se si verifica un errore, verrà visualizzato un messaggio di errore.

# Importa modulo getopt
importare sormontato

# Importa modulo sys
importare sistema

# Memorizza la variabile dell'argomento omettendo il nome dello script
argv= sistema.argv[1:]

Tentativo:
# Definisci le opzioni getopt short
opzioni,argomenti= sormontato.sormontato(argv, 'x: y:')

# stampa le opzioni e l'argomento
Stampa(opzioni)
Stampa(argomenti)

tranne sormontato.GetoptError:

# Stampa il messaggio di errore se viene fornita l'opzione sbagliata
Stampa('È fornita l'opzione sbagliata')

# Termina lo script
sistema.Uscita(2)

Produzione:

Esegui lo script senza alcun argomento, argomenti con opzioni corrette e argomenti con l'opzione sbagliata.

Esempio 4: lettura dei valori degli argomenti utilizzando le opzioni getopt short e long

Questo esempio mostra come sia possibile utilizzare le opzioni short e long con i valori degli argomenti. Aggiungerà due numeri quando '-a' o '-Inserisci' verrà utilizzato come opzione e sottrarre due numeri quando ' -S' o ' -sub' verrà utilizzato come opzione in fase di esecuzione.

# Importa modulo getopt
importare sormontato

# Importa modulo sys
importare sistema

# Memorizza la variabile dell'argomento omettendo il nome dello script
argv= sistema.argv[1:]

# Inizializza variabile risultato
risultato=0

Tentativo:

# Definisci le opzioni getopt short e long
opzioni,argomenti= sormontato.sormontato(sistema.argv[1:], 'come', ['aggiungi=','sub='])

# Leggi ogni opzione usando il ciclo for
peroptare,arrabbiatoinopzioni:
# Calcola la somma se l'opzione è -a o --add
Seoptarein ('-a', '--Inserisci'):
risultato= int(argv[1])+int(argv[2])

# Calcola la suntraction se l'opzione è -s o --sub
elifaoptarein ('-S', '--sub'):
risultato= int(argv[1])-int(argv[2])

Stampa('Risultato = ',risultato)

tranne sormontato.GetoptError:

# Stampa il messaggio di errore se viene fornita l'opzione sbagliata
Stampa('È fornita l'opzione sbagliata')

# Termina lo script
sistema.Uscita(2)

Produzione:

Esegui lo script senza argomenti e opzioni, argomenti con l'opzione '-a', argomenti con l'opzione '-s' e argomenti con l'opzione sbagliata.

Analisi dell'argomento della riga di comando utilizzando il modulo argparse

Il modulo Argparse contiene molte opzioni per leggere gli argomenti della riga di comando. I valori degli argomenti predefiniti, l'argomento con il tipo di dati, gli argomenti posizionali, il messaggio di aiuto, ecc. possono essere forniti da questo modulo.

Esempio 5: lettura degli argomenti della riga di comando utilizzando argparse

L'esempio seguente mostra l'uso di argparse modulo per leggere l'argomento della riga di comando. Qui, sono definite due opzioni per leggere gli argomenti della riga di comando. Questi sono '-n' o '–nome' e '-e' o '–e-mail'. Se l'utente fornisce un argomento errato, mostrerà un errore con un messaggio di utilizzo. Se l'utente fornisce le opzioni corrette con gli argomenti, visualizzerà i valori degli argomenti. se l'utente esegue lo script con l'opzione '–help', fornirà il messaggio necessario per eseguire lo script.

# Importa modulo argparse
importareargparse

# Importa modulo sys
importare sistema

# Dichiara la funzione per definire gli argomenti della riga di comando
defleggiOpzioni(argomenti=sistema.argv[1:]):
analizzatore =argparse.ArgomentoParser(descrizione='L'elenco dei comandi di analisi.')
analizzatore.add_argument('-n', '--nome', aiuto='Scrivi il tuo nome.')
analizzatore.add_argument('-e', '--e-mail', aiuto='Digita la tua email.')
opta= analizzatore.parse_args(argomenti)
Restituzioneopta

# Chiama la funzione per leggere i valori degli argomenti
opzioni=leggiOpzioni(sistema.argv[1:])
Stampa(opzioni.nome)
Stampa(opzioni.e-mail)

Produzione:

Esegui lo script con l'opzione sbagliata, l'opzione corretta e l'opzione di aiuto.

Conclusione:

Vari modi di leggere gli argomenti della riga di comando sono spiegati in questo tutorial utilizzando tre moduli Python. Spero che questo tutorial aiuti il ​​programmatore che vuole leggere i dati usando gli argomenti della riga di comando in python.

Guarda il video dell'autore: qui