Come analizzare gli argomenti sulla linea di comando in Python

Come analizzare gli argomenti sulla linea 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 popolari. Ma l'elaborazione degli argomenti della linea di comando è diverso per le lingue diverse. I valori degli argomenti vengono forniti con il nome del programma al momento dell'esecuzione del programma. Python Language supporta questa funzione. In che modo gli argomenti della riga di comando vengono analizzati nello script di Python è mostrato in questo articolo.

Analizzare l'argomento della riga di comando usando sys modulo

Gli argomenti della linea di comando sono archiviati in un elenco utilizzando sys 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 conteggiato utilizzando len () funzione. L'uso di questo modulo è descritto nella parte dell'articolo.

Esempio 1: leggere il numero di argomenti e valori degli argomenti

Crea un file con il seguente script Python. Qui, i valori dell'argomento della riga di comando sono archiviati 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 sono stampati come un array alla fine dello script.

# Importa modulo sys
Import sys
# Stampa il numero totale di argomenti
Print ("Argomenti totali:", Len (SYS.argv))
print ('I valori degli argomenti sono:', STR (sys.argv))

Produzione:

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

Esempio 2: leggere i valori degli argomenti usando il loop

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

# Importa modulo sys
Import sys
# Stampa il tipo di variabile, sys.argv
Stampa (tipo (sys.argv))
# Stampa ogni argomento della riga di comando in ogni riga
print ("Gli argomenti della riga di comando sono:")
per me in sys.argv:
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.

Argomento della riga di comando di analisi usando il modulo getopt

Getopt Il modulo viene utilizzato per analizzare gli argomenti della riga di comando con le opzioni. getopt () 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.

Args: Contiene l'argomento tratto dall'argomento della linea di comando.

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

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

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

Esempio 3: leggere i valori degli argomenti usando brevi opzioni Getopt

getopt Il modulo contiene più funzionalità di sys modulo. Il seguente esempio mostra come si possono utilizzare le opzioni brevi getopt () metodo. argv La variabile memorizzerà gli argomenti di comando omettendo il nome dello script. Successivamente, due opzioni sono definite in getopt () Metodo che può essere usato con l'argomento in fase di esecuzione. Se si verifica un errore, verrà visualizzato un messaggio di errore.

# Importa il modulo Getopt
importa getopt
# Importa modulo sys
Import sys
# Memorizzare la variabile argomento omettendo il nome dello script
argv = sys.argv [1:]
Tentativo:
# Definisci le opzioni brevi Getopt
Opzioni, args = getopt.getopt (argv, 'x: y:')
# stampa le opzioni e l'argomento
Stampa (opzioni)
stampa (args)
Tranne Getopt.Getopterror:
# Stampa il messaggio di errore se viene fornita l'opzione sbagliata
stampa ("l'opzione sbagliata è fornita")
# Termina lo script
sys.uscita (2)

Produzione:

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

Esempio 4: leggere i valori degli argomenti usando opzioni brevi e lunghe Getopt

Questo esempio mostra come le opzioni sia brevi che lunghe possono essere utilizzate con i valori degli argomenti. Aggiungerà due numeri quando '-UN' O '-aggiungere' verrà utilizzato come opzione e sottrai due numeri quando '-S' O '-sub' verrà utilizzato come opzione in tempo di esecuzione.

# Importa il modulo Getopt
importa getopt
# Importa modulo sys
Import sys
# Memorizzare la variabile argomento omettendo il nome dello script
argv = sys.argv [1:]
# Inizializza la variabile del risultato
risultato = 0
Tentativo:
# Definisci le opzioni brevi e lunghe Getopt
Opzioni, args = getopt.getopt (sys.argv [1:], 'a: s', ['add =', 'sub ='])
# Leggi ogni opzione utilizzando per loop
Per opt, arg in opzioni:
# Calcola la somma se l'opzione è -a o --add
se opt in ('-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 ('result =', risultato)
Tranne Getopt.Getopterror:
# Stampa il messaggio di errore se viene fornita l'opzione sbagliata
stampa ("l'opzione sbagliata è fornita")
# Termina lo script
sys.uscita (2)

Produzione:

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

Analisi della linea di comando di analisi usando 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 di posizione, messaggio di aiuto, ecc. può essere fornito da questo modulo.

Esempio 5: lettura degli argomenti della riga di comando che utilizzano ArgParse

Il seguente esempio mostra l'uso di Argparse Modulo per la lettura dell'argomento della riga di comando. Qui, sono definite due opzioni per leggere gli argomenti della riga di comando. Questi sono '-n' o '-name' E '-e' o '-email'. Se l'utente fornisce un argomento sbagliato, mostrerà un errore con un messaggio di utilizzo. Se l'utente fornisce opzioni corrette con gli argomenti, visualizzerà i valori dell'argomento. Se l'utente esegue lo script con l'opzione '-help', fornirà il messaggio necessario per eseguire lo script.

# Importa il modulo ArgParse
importare argparse
# Importa modulo sys
Import sys
# Dichiarare la funzione per definire gli argomenti della riga di comando
def readoptions (args = sys.argv [1:]):
Parser = ArgParse.ArgumentParser (Descrizione = "Gli elenchi di comandi di analisi.")
parser.add_argument ("-n", "--name", help = "Digita il tuo nome.")
parser.add_argument ("-e", "--mail", help = "Digita la tua email.")
Opts = parser.parse_args (args)
restituire opti
# Chiama la funzione per leggere i valori dell'argomento
Opzioni = readoptions (sys.argv [1:])
Stampa (opzioni.nome)
Stampa (opzioni.e-mail)

Produzione:

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

Conclusione:

Vari modi di leggere gli argomenti della linea di comando sono spiegati in questo tutorial usando tre moduli Python. Spero che questo tutorial aiuterà il programmatore che vuole leggere i dati usando gli argomenti della riga di comando in Python.

Guarda il video dell'autore: qui