Corso
Esegui e modifica il codice da questo tutorial online
Esegui codiceDi solito, chi è alle prime armi impara prima a scrivere uno script Python sulla riga di comando, poi passa a eseguire lo script dalla riga di comando, dove lo script è in genere scritto in un editor di testo ed eseguito dal terminale. In questo post, vediamo più nel dettaglio come eseguire script Python.
Script e interpreti Python
I computer non possono capire il codice così come lo scrivono gli esseri umani; per questo serve un interprete tra il computer e il codice scritto dall’uomo. Il compito dell’interprete è convertire il codice in un formato che i computer possano comprendere ed elaborare.
L’interprete elabora il codice nei seguenti modi:
-
Elabora lo script Python in sequenza
-
Compila il codice in bytecode, un linguaggio di livello più basso compreso dai computer.
-
Infine entra in gioco una Python Virtual Machine (PVM). La PVM è il motore runtime di Python. È un processo che scorre le istruzioni del tuo bytecode di basso livello per eseguirle una per una.
Come gli script, esiste anche qualcosa chiamato modulo, ovvero uno script Python importato e usato in un altro script Python.
Lo script Python viene salvato con estensione .py, che segnala al computer che si tratta di uno script di programma Python. A differenza di Windows, i sistemi operativi basati su Unix come Linux e Mac includono Python preinstallato. Inoltre, il modo in cui si eseguono gli script Python in Windows e nei sistemi Unix differisce.
Eseguire script Python: preparazione
Per tutti gli utenti, in particolare quelli con Windows, è altamente consigliato installare Anaconda, scaricabile dal sito di Anaconda. Puoi seguire le istruzioni in questo tutorial per installare Anaconda su Windows.
Per installare Python3 su un sistema operativo Windows, dai un’occhiata a questo tutorial di configurazione di Python.
L’interprete da riga di comando per Python è accessibile sui vari sistemi operativi nei seguenti modi:
- Su
Windows, la riga di comando è chiamata prompt dei comandi e si può aprire facendo clic sul menustarte cercandocommand prompt. Un altro modo è aprire la finestra di dialogoEsegui, digitarecmde premere Invio (Menu Start $->$ Esegui e digita cmd). Dopodiché, se Python è installato nella tua unità C, ti basta digitare C:\python36\python.exe, dove python36 è la versione di Python (Nota: questo percorso può variare in base alla directory in cui è configurato Python).
- Su un sistema
Macè molto semplice. ApriLaunchpade cercaTerminale, poi nel terminale digitaPythone otterrai in output la versione di Python.

- Come su Mac, anche su un sistema
Linuxaccedere al terminale è semplicissimo. Fai clic con il tasto destro sul desktop e selezionaTerminale; nel terminale digitaPython.
Nota: In questo tutorial userai il Terminale di macOS.
Quindi, senza ulteriori indugi, iniziamo!
Scrivere script Python nel terminale
Vediamo come possiamo scrivere codice e generare l’output direttamente nel terminale. Per farlo, per prima cosa digita python3, ovvero userai la versione Python3.
Dopodiché, puoi scrivere codice più o meno come faresti in un editor di testo o in un IDE (integrated development environment), anche se nel terminale non avrai tutte le funzionalità di un IDE.
Inizierai con l’intramontabile esempio Hello, World! e vediamo come appare l’output nel terminale.

Non è bello che aprendo il terminale e digitando Python3 tu possa già programmare in Python? Proviamo qualche altro esempio.

Una cosa da notare nell’esempio sopra è che, senza nemmeno digitare l’istruzione print, sei riuscito a ottenere l’output.
Complichiamo un po’ il codice e usiamo la libreria NumPy (Numerical Python) per creare due array e applicarvi alcune operazioni matematiche. Un po’ di contesto su NumPy: è una libreria Python in grado di gestire array e matrici di grandi dimensioni e multidimensionali, con un’ampia raccolta di funzioni matematiche di alto livello per operare su questi array.

Dalla figura sopra puoi notare che, usando NumPy, sei riuscito a creare, sommare e moltiplicare due array NumPy direttamente nel terminale. Una cosa da ricordare è che la funzione multiply in NumPy esegue una moltiplicazione elemento per elemento, mentre la funzione dot calcola il prodotto scalare di due matrici. Per eseguire il comando np.dot, devi assicurarti che le colonne della prima matrice siano uguali alle righe della seconda matrice e, in caso contrario, otterrai un value error.
Come eseguire script Python dal terminale
Eseguire uno script Python dal terminale è molto semplice: invece di scrivere lo script Python nel terminale, ti basta usare un editor di testo come vim, emacs o notepad++ e salvarlo con estensione .py. Poi apri il terminale, vai nella directory in cui si trova il codice ed esegui lo script con la parola chiave python seguita dal nome dello script.

Per creare il file terminal.py, usa vim nel terminale con il nome del programma, cioè vim terminal.py, e incolla il codice qui sotto. Per salvare il codice, premi il tasto esc seguito da wq!. Infine, per eseguire quello script, ti basta digitare python3 terminal.py e in meno di un secondo vedrai l’output come mostrato sopra.
Di seguito il codice usato nell’esempio precedente.
import numpy as np
x = np.array([[1,2],[3,4]], dtype=np.float64)
y = np.array([[5,6],[7,8]], dtype=np.float64)
# Elementwise sum; both produce the array
# [[ 6.0 8.0]
# [10.0 12.0]]
print("Output of adding x and y with a '+' operator:",x + y)
print("Output of adding x and y using 'numpy.add':",np.add(x, y))
# Elementwise difference; both produce the array
# [[-4.0 -4.0]
# [-4.0 -4.0]]
print("Output of subtracting x and y with a '-' operator:",x - y)
print("Output of subtracting x and y using 'numpy.subtract':",np.subtract(x, y))
# Elementwise product; both produce the array
# [[ 5.0 12.0]
# [21.0 32.0]]
print("Output of elementwise product of x and y with a '*' operator:",x * y)
print("Output of element wise product of x and y using 'numpy.multiply':",np.multiply(x, y))
# Elementwise division; both produce the array
# [[ 0.2 0.33333333]
# [ 0.42857143 0.5 ]]
print("Output of elementwise division x and y with a '/' operator:",x / y)
print("Output of elementwise division x and y using 'numpy.divide':",np.divide(x, y))
# Elementwise square root; produces the array
# [[ 1. 1.41421356]
# [ 1.73205081 2. ]]
print("Output of elementwise square root x using 'numpy.sqrt':",np.sqrt(x))
Output of adding x and y with a '+' operator: [[ 6. 8.]
[10. 12.]]
Output of adding x and y using 'numpy.add': [[ 6. 8.]
[10. 12.]]
Output of subtracting x and y with a '-' operator: [[-4. -4.]
[-4. -4.]]
Output of subtracting x and y using 'numpy.subtract': [[-4. -4.]
[-4. -4.]]
Output of elementwise product of x and y with a '*' operator: [[ 5. 12.]
[21. 32.]]
Output of element wise product of x and y using 'numpy.multiply': [[ 5. 12.]
[21. 32.]]
Output of elementwise division x and y with a '/' operator: [[0.2 0.33333333]
[0.42857143 0.5 ]]
Output of elementwise division x and y using 'numpy.divide': [[0.2 0.33333333]
[0.42857143 0.5 ]]
Output of elementwise square root x using 'numpy.sqrt': [[1. 1.41421356]
[1.73205081 2. ]]
Passare argomenti da riga di comando a uno script Python
Gli argomenti da riga di comando semplificano molto la vita e sono spesso usati in codice pronto per la produzione. Rendono efficiente la riproducibilità dell’output. Per esempio, se il tuo codice contiene molti input dell’utente o file da leggere, usando gli argomenti da riga di comando non dovrai entrare nel codice per cambiare il nome del file o il valore di una variabile.
Per farlo, userai il modulo sys, che è un modulo integrato di Python. All’interno di sys c’è argv, che ti fornisce l’elenco degli argomenti passati da riga di comando al programma Python. sys.argv legge gli argomenti della riga di comando come una lista di elementi: il primo elemento di quella lista è accessibile come sys.argv[1], mentre il primo argomento, cioè sys.argv[0], è sempre il nome del programma così come è stato invocato.
Vediamo un esempio semplice per capire come funziona.
Nota: L’argomento da riga di comando viene letto come string da Python, quindi assicurati di convertirlo in un integer se stai lavorando con numeri.
Proprio come nell’esempio precedente, salva le righe di codice qui sotto in un editor come command_line.py e per eseguire il codice digita python3 command_line.py 10, dove 10 è l’argomento da riga di comando.
import sys
num = sys.argv[1]
for i in range(int(num)):
print (i)

Cosa succede se non fornisci alcun argomento da riga di comando?
Otterrai un errore list index out of range, che conferma anche che sys.argv legge una lista di elementi. Per evitare tali errori, serve la gestione delle eccezioni, che esula dallo scopo di questo tutorial.

Scrivere l’output di uno script Python su un file
Infine, come bonus, vediamo come puoi salvare l’output dello script Python in un file txt usando il tasto >.
Per prima cosa, crea una cartella cli e sposta il codice command_line.py nella cartella cli. Poi controlla cosa c’è in quella cartella per assicurarti che non esista già un file txt.
Quindi digita python3 command_line.py 10 > output.txt e infine verifica il contenuto della cartella cli. Ora dovresti vedere il file output.txt.

Apriamo e vediamo il contenuto del file output.txt.

Dall’output sopra puoi vedere che le cifre 0-9 sono state scritte in un file di testo usando semplicemente il simbolo >.
Conclusione
Complimenti per aver completato il tutorial.
C’è ancora molto da esplorare, come l’esecuzione basata su GUI in Python, l’esecuzione interattiva degli script Python e l’esecuzione degli script da un file manager o da un IDE. Per quanto riguarda l’esecuzione da riga di comando, potresti sperimentare con il prompt dei comandi di Windows e vedere in cosa differisce rispetto a un sistema operativo basato su Unix.
Se stai iniziando con Python e vuoi saperne di più, segui il corso Introduction to Data Science in Python di DataCamp.
Domande frequenti sugli script Python
Che cos’è uno script Python?
Uno script Python è un file che contiene codice Python. Il codice in uno script Python può essere eseguito lanciando lo script, dalla riga di comando oppure richiamandolo da un altro script.
Come creo uno script Python?
Per creare uno script Python ti serve un editor di testo o un ambiente di sviluppo integrato (IDE) in grado di scrivere e salvare codice Python. Alcuni IDE popolari per Python sono PyCharm, IDLE e Visual Studio Code.
Per creare un nuovo script Python, crea semplicemente un nuovo file e salvalo con estensione .py. Poi puoi scrivere il tuo codice Python nel file e salvarlo per eseguire lo script.
Posso eseguire uno script Python in background?
Sì, puoi eseguire uno script Python in background usando il comando nohup. Per esempio:
nohup python script.py &
Questo eseguirà lo script in background e ti permetterà di continuare a usare il terminale mentre lo script è in esecuzione.
Come eseguo uno script Python dalla riga di comando?
Per eseguire uno script Python dalla riga di comando, devi avere Python installato sul sistema. Poi puoi usare il seguente comando per eseguire uno script:
python script.py
