sys.argv
In sostanza, sys.argv () è un elenco di tutti gli ingressi della riga di comando. Quando viene eseguito lo script, è possibile alimentare il proprio input dell'utente in vari modi e uno di questo è tramite la riga di comando. In questo primo istanza, supponiamo che abbiamo una semplice sceneggiatura chiamata Main.Py.
Stampa ("Hello World")Durante l'esecuzione dello script, aggiungeremo alcuni argomenti della riga di comando oltre al nome dello script. Se dovessimo eseguire lo script, otterremmo quanto segue:
$ Python3 Main.Py cosa stai facendo?Noti qui che gli argomenti della riga di comando non interferiscono con lo script stesso.
Quindi, ora, modifichiamo un po 'lo script. Quindi, supponiamo che ora abbiamo una sceneggiatura chiamata Main.Py con i seguenti contenuti:
Import sysSe dovessimo eseguire lo script, otterremmo quanto segue:
$ Python3 Main.PyCome puoi vedere, otteniamo un elenco con un elemento perché l'abbiamo fornito solo un elemento, il nome dello script. Supponiamo ora che lo forniamo argomenti di input della riga di comando leggermente diversi.
Import sysSe dovessimo eseguire lo script, otterremmo quanto segue:
$ Python3 Main.Py Hello WorldOra, ciò che succede è che recupera tutto ciò che abbiamo fornito tramite la riga di comando o tutti gli argomenti della riga di comando forniti dall'utente. Nel mio caso, ho aggiunto "Hello World" dopo il nome della sceneggiatura e, come tale, l'ho recuperato all'elenco.
sys.argv [0]
Sys.argv [0] è il primo argomento nell'elenco. In tutti i casi, il primo argomento è sempre il nome dello script.
Import sysDurante l'esecuzione dello script, digitare quanto segue:
$ Python3 Main.Pysys.argv [n]
In alternativa, potresti voler recuperare un argomento specifico della riga di comando. Ad esempio, potresti voler recuperare l'ingresso dell'utente tramite gli argomenti della riga di comando quando si scrive un programma Python. In questo scenario, recupereremo i primi tre argomenti della riga di comando.
Import sysDurante l'esecuzione dello script, definiremmo quanto segue, ad esempio:
$ Python3 Main.Py Trevor Travis TimQui, sys.argv [1] è l'argomento della seconda riga di comando, mentre SYS.argv [2] è l'argomento della terza riga di comando e sys.Argv [3] è l'argomento della quarta riga di comando. Questo è così perché sebbene l'indice inizi a 0 e sys.argv [0] è il nome dello script.
E se l'utente doveva inserire n numero di input e non sapessimo quanti input ci fossero? Supponiamo che sia stato scritto la seguente sceneggiatura:
Import sysDurante l'esecuzione dello script, definiremmo quanto segue, ad esempio:
$ Python3 Main.Py Hello Trevor Travis e TimQui, sys.argv [1:] significa che tutti i valori di SYS.argv [1] viene utilizzato fino alla fine dell'elenco. In questo caso, possiamo aggiungere tutti gli argomenti della riga di comando che vogliamo.
stringhe
Si prega di notare che tutti i valori acquisiti dal sistema variabile.argv sono stringhe. Supponiamo quindi che volessimo aggiungere tre numeri che l'utente input.
Import sysSe dovessimo eseguire lo script, otterremmo quanto segue:
$ Python3 Main2.Py 3 4 5Quello che otteniamo è un typeerror. Questo perché tutti i valori ottenuti dall'elenco sono valori di "stringa" mentre richiediamo che i valori interi. Per correggere ciò, dovremmo convertire le stringhe in numeri interi:
Import sysSe dovessimo eseguire lo script, otterremmo quanto segue:
$ Python3 Main2.Py 3 4 5Abbiamo aggiunto int (sys.arg [n]) ha assicurato di convertire la stringa in un numero intero.
Sys.errori argv
Uno degli errori più comuni che vengono lanciati (quando non usiamo sys.argv [1:] ma piuttosto specificare il valore nth usando sys.argv [n]) è quello di un indicerror (indice di elenco fuori porta). Ciò che questo errore significa è che gli argomenti della riga di comando non sono stati specificati e, per evitare questo errore, dobbiamo adottare alcuni passaggi precauzionali:
Import sysDurante l'esecuzione dello script, definiremmo quanto segue, ad esempio:
$ Python3 Main.Py Travis Trevor TimPer evitare l'errore, dobbiamo regolare la lunghezza degli argomenti della riga di comando. Nell'esempio precedente, abbiamo tre nomi e un nome di script, il che significa che ci sono un totale di 4 valori. Pertanto, diciamo che se la lunghezza è maggiore di 4 o meno di 4, chiediamo all'utente di inserire tre nomi; altro, stampare i tre nomi.
Il modulo SYS è molto importante in quanto consente l'interazione con l'interprete di Python. In particolare, il sistema variabile.Argv è un elenco che contiene tutti gli argomenti della riga di comando immessi degli utenti. Sys.argv [0] definisce il nome dello script in tutti i casi. Sebbene sys.Argv () è molto comunemente utilizzato per raccogliere argomenti della riga di comando, un altro modo ancora migliore per raccogliere argomenti della riga di comando è usare ArgParse. Ma questa è una storia per un altro giorno!