Argomenti della riga di comando in Python
-
Usa il modulo
sys
per elaborare gli argomenti della riga di comando in Python -
Usa il modulo
getopt
per elaborare gli argomenti della riga di comando in Python -
Usa il modulo
argparse
per elaborare gli argomenti della riga di comando in Python
Gli argomenti della riga di comando sono quei valori forniti nella finestra della riga di comando durante l’esecuzione del file. Sono accomodanti perché ci permettono di passare i valori durante l’esecuzione del programma.
In Python, è possibile utilizzare diversi moduli per elaborare gli argomenti della riga di comando, discussi di seguito.
Usa il modulo sys
per elaborare gli argomenti della riga di comando in Python
Il sys.argv()
viene utilizzato per memorizzare gli argomenti forniti nella riga di comando in una struttura di tipo elenco. Il nome del file viene considerato come primo argomento.
Per esempio,
import sys
print("Arguments without the script name ", (len(sys.argv) - 1))
print("Arguments given ")
for i in range(1, len(sys.argv)):
print(sys.argv[i])
Nell’esempio sopra, passiamo alcuni argomenti in fase di esecuzione e mostriamo il numero totale di argomenti e i loro valori.
Usa il modulo getopt
per elaborare gli argomenti della riga di comando in Python
Il modulo getopt
elabora anche gli argomenti della riga di comando. Ci permette di convalidare i valori dati. Possiamo fornire valori con l’argomento insieme a stringhe di opzioni che lo script può riconoscere. Questo modulo funziona con il modulo sys per una migliore elaborazione.
Il costruttore getopt()
viene utilizzato per inizializzare l’oggetto, che analizza gli argomenti. Restituisce un getopt.error
quando l’opzione non è riconosciuta dall’elenco degli argomenti.
Lo usiamo nel codice qui sotto.
import getopt
import sys
lst = sys.argv[1:]
options = "abc:"
long_options = ["A_Message", "B_Message", "C_Message"]
try:
arguments, values = getopt.getopt(lst, options, long_options)
for currentArgument, currentValue in arguments:
if currentArgument in ("-a", "--A_Message"):
print("Message A received")
elif currentArgument in ("-b", "--B_Message"):
print("Message B received")
elif currentArgument in ("-c", "--C_Message"):
print("Message C received")
except getopt.error as err:
print("Error")
Usa il modulo argparse
per elaborare gli argomenti della riga di comando in Python
Il modulo argparse è di gran lunga il modulo più conveniente per lavorare con gli argomenti della riga di comando. Questo modulo offre molta flessibilità poiché può gestire argomenti posizionali, argomenti opzionali e anche specificarne il tipo.
Possiamo inserire alcuni valori predefiniti nel caso in cui manchi qualche argomento e persino visualizzare un messaggio di aiuto.
La funzione ArgumentParser()
crea un oggetto parser. La funzione parse.args()
legge gli argomenti dalla riga di comando.
Per esempio,
import argparse
parser = argparse.ArgumentParser(description="Which Message?")
parser.add_argument("a")
parser.add_argument("b")
args = parser.parse_args()
print(args.a, args.b)
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn