Pitone

Come analizzare gli argomenti sulla riga di comando in Python

Come analizzare gli argomenti sulla riga di comando in 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 sono dati con il nome del programma al momento dell'esecuzione del programma. Il linguaggio Python supporta questa funzione. 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.  sistema.argv è usato per leggere i valori degli argomenti della riga di comando. Il numero totale di argomenti della riga di comando può essere contato usando lente() 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. lente() 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
sistema di importazione
# Stampa il numero totale di argomenti
print('Totale argomenti:', len(sys.argomento))
print('I valori degli argomenti sono:', str(sys.argomento))

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 sono stampati come un array. Crea un file con il seguente script per stampare il tipo di variabile dell'argomento e stampare ogni valore di argomento in ogni riga usando il ciclo for.

# Importa modulo sys
sistema di importazione
# Stampa il tipo della variabile, sys.argv
print(type(sys.argomento))
# Stampa ogni argomento della riga di comando in ogni riga
print('Gli argomenti della riga di comando sono:')
per io in sys.argomento:
stampa(i)

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

Getopt modulo viene utilizzato per analizzare gli argomenti della riga di comando con le opzioni. getopt() il metodo di questo modulo è usato 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, opzione_corta, [opzione_lunga])

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

getopt il modulo contiene più funzioni di sistema modulo. L'esempio seguente mostra come possono essere utilizzate le opzioni brevi in getopt() metodo. argv la variabile memorizzerà gli argomenti della riga di comando omettendo il nome dello script. Successivamente, due opzioni sono definite nel getopt() 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
import getopt
# Importa modulo sys
sistema di importazione
# Memorizza la variabile dell'argomento omettendo il nome dello script
argv = sys.argomento[1:]
 
provare:
# Definisci le opzioni getopt short
opzioni, argomenti = getopt.getopt(argv, 'x:y:')
# stampa le opzioni e l'argomento
stampa(opzioni)
stampa(argomenti)
 
tranne getopt.GetoptError:
# Stampa il messaggio di errore se viene fornita l'opzione sbagliata
print('E' 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 '-un' o '-Inserisci' sarà usato come opzione e sottrarre due numeri quando '-S' o '-sub' verrà utilizzato come opzione in fase di esecuzione.

# Importa modulo getopt
import getopt
# Importa modulo sys
sistema di importazione
# Memorizza la variabile dell'argomento omettendo il nome dello script
argv = sys.argomento[1:]
# Inizializza variabile risultato result
risultato=0
 
provare:
 
# Definisci le opzioni getopt short e long
opzioni, argomenti = getopt.getopt(sys.argv[1:], 'a:s', ['add=','sub='])
 
# Leggi ogni opzione usando il ciclo for
per opt, arg nelle opzioni:
# Calcola la somma se l'opzione è -a o --add
se aderisci ('-a', '--add'):
risultato = int(argv[1]) + int(argv[2])
# Calcola la suntraction se l'opzione è -s o --sub
elif opt in ('-s', '--sub'):
risultato = int(argv[1]) - int(argv[2])
 
print('Risultato = ', risultato)
tranne getopt.GetoptError:
# Stampa il messaggio di errore se viene fornita l'opzione sbagliata
print('E' 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. Valori degli argomenti predefiniti, l'argomento con il tipo di dati, argomenti posizionali, messaggio di aiuto, ecc. può essere fornito 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 sbagliato, 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
import argparse
# Importa modulo sys
sistema di importazione
# Dichiara la funzione per definire gli argomenti della riga di comando
def readOptions(args=sys.arg[1:]):
parser = argparse.ArgumentParser(description="L'elenco dei comandi di analisi.")
analizzatore.add_argument("-n", "--name", help="Digita il tuo nome.")
analizzatore.add_argument("-e", "--email", help="Digita la tua email.")
opts = parser.parse_args(args)
opzioni di ritorno
# Chiama la funzione per leggere i valori degli argomenti
opzioni = readOptions(sys.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 usando 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

SuperTuxKart per Linux
SuperTuxKart è un fantastico titolo progettato per offrirti l'esperienza di Mario Kart gratuitamente sul tuo sistema Linux. È piuttosto impegnativo e ...
Tutorial Battaglia per Wesnoth
The Battle for Wesnoth è uno dei giochi di strategia open source più popolari a cui puoi giocare in questo momento. Non solo questo gioco è in svilupp...
0 A.D. Tutorial
Tra i tanti giochi di strategia in circolazione, 0 A.D. riesce a distinguersi come un titolo completo e un gioco molto profondo e tattico nonostante s...