Argomenti della riga di comando in Python

Manav Narula 9 luglio 2021
  1. Usa il modulo sys per elaborare gli argomenti della riga di comando in Python
  2. Usa il modulo getopt per elaborare gli argomenti della riga di comando in Python
  3. Usa il modulo argparse per elaborare gli argomenti della riga di comando in Python
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)
Autore: Manav Narula
Manav Narula avatar Manav Narula avatar

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