Gli argomenti che vengono forniti dopo il nome del programma nella shell della riga di comando del sistema operativo sono noti come Argomenti della riga di comando . Python fornisce vari modi per gestire questi tipi di argomenti. I tre più comuni sono:
Utilizzando sys.argv
Il modulo sys fornisce funzioni e variabili utilizzate per manipolare diverse parti dell'ambiente runtime Python. Questo modulo fornisce l'accesso ad alcune variabili utilizzate o mantenute dall'interprete e a funzioni che interagiscono fortemente con l'interprete.
Una di queste variabili è sys.argv che è una semplice struttura a elenco. I suoi scopi principali sono:
- È un elenco di argomenti della riga di comando.
- len(sys.argv) fornisce il numero di argomenti della riga di comando.
- sys.argv[0] è il nome dello script Python corrente.
Esempio: Supponiamo che esista uno script Python per aggiungere due numeri e che i numeri vengano passati come argomenti della riga di comando.
Python3
# Python program to demonstrate> # command line arguments> import> sys> # total arguments> n>=> len>(sys.argv)> print>(>'Total arguments passed:'>, n)> # Arguments passed> print>(>'
Name of Python script:'>, sys.argv[>0>])> print>(>'
Arguments passed:'>, end>=> ' '>)> for> i>in> range>(>1>, n):> >print>(sys.argv[i], end>=> ' '>)> > # Addition of numbers> Sum> => 0> # Using argparse module> for> i>in> range>(>1>, n):> >Sum> +>=> int>(sys.argv[i])> > print>(>'
Result:'>,>Sum>)> |
>
>
Produzione:

Utilizzando il modulo getopt
Pitone modulo getopt è simile alla funzione getopt() di C. A differenza del modulo sys, il modulo getopt estende la separazione della stringa di input tramite la convalida dei parametri. Consente opzioni sia brevi che lunghe, inclusa l'assegnazione di un valore. Tuttavia, questo modulo richiede l'uso del modulo sys per elaborare correttamente i dati di input. Per utilizzare il modulo getopt, è necessario rimuovere il primo elemento dall'elenco degli argomenti della riga di comando.
Sintassi: getopt.getopt(argomenti, opzioni, [opzioni_lunghe])
parametri:
argomenti: Elenco degli argomenti da passare.
opzioni: Stringa di lettere di opzioni che lo script desidera riconoscere. Le opzioni che richiedono un argomento devono essere seguite da due punti (:).
opzioni_lunghe: Elenco di stringhe con il nome delle opzioni lunghe. Le opzioni che richiedono argomenti devono essere seguite da un segno di uguale (=).
Tipo di reso: Restituisce un valore composto da due elementi: il primo è un elenco di coppie (opzione, valore). Il secondo è l'elenco degli argomenti del programma rimasti dopo che l'elenco delle opzioni è stato eliminato.
nodo dell'elenco Java
Esempio:
Python3
# Python program to demonstrate> # command line arguments> import> getopt, sys> # Remove 1st argument from the> # list of command line arguments> argumentList>=> sys.argv[>1>:]> # Options> options>=> 'hmo:'> # Long options> long_options>=> [>'Help'>,>'My_file'>,>'Output='>]> try>:> ># Parsing argument> >arguments, values>=> getopt.getopt(argumentList, options, long_options)> > ># checking each argument> >for> currentArgument, currentValue>in> arguments:> >if> currentArgument>in> (>'-h'>,>'--Help'>):> >print> (>'Displaying Help'>)> > >elif> currentArgument>in> (>'-m'>,>'--My_file'>):> >print> (>'Displaying file_name:'>, sys.argv[>0>])> > >elif> currentArgument>in> (>'-o'>,>'--Output'>):> >print> ((>'Enabling special output mode (% s)'>)>%> (currentValue))> > except> getopt.error as err:> ># output error, and return with an error code> >print> (>str>(err))> |
>
>
Produzione:

Utilizzando il modulo argparse
L'uso del modulo argparse è un'opzione migliore rispetto alle due opzioni precedenti in quanto fornisce molte opzioni come argomenti posizionali, valore predefinito per argomenti, messaggio di aiuto, specifica del tipo di dati dell'argomento ecc.
Nota: Come argomento opzionale predefinito, include -h, insieme alla sua versione lunga –help.
Esempio 1: Utilizzo di base del modulo argparse.
Python3
imbottitura np
# Python program to demonstrate> # command line arguments> import> argparse> # Initialize parser> parser>=> argparse.ArgumentParser()> parser.parse_args()> |
>
>
Produzione:

Esempio 2: Aggiunta di descrizione al messaggio di aiuto.
Python3
char tostring java
# Python program to demonstrate> # command line arguments> import> argparse> msg>=> 'Adding description'> # Initialize parser> parser>=> argparse.ArgumentParser(description>=> msg)> parser.parse_args()> |
>
>
Produzione:

Esempio 3: Definizione del valore facoltativo
Python3
# Python program to demonstrate> # command line arguments> import> argparse> # Initialize parser> parser>=> argparse.ArgumentParser()> # Adding optional argument> parser.add_argument(>'-o'>,>'--Output'>,>help> => 'Show Output'>)> # Read arguments from command line> args>=> parser.parse_args()> if> args.Output:> >print>(>'Displaying Output as: % s'> %> args.Output)> |
>
>
Produzione:
