Leggi input da stdin in Python
-
Usa
fileinput.input()
per leggere dastdin
in Python -
Usa
sys.stdin
per leggere dastdin
in Python - Conclusione
Questo tutorial discute i metodi per leggere l’input da stdin
in Python. Può essere la lettura direttamente dalla console o la lettura dal nome del file specificato nella console.
Usa fileinput.input()
per leggere da stdin
in Python
Possiamo usare il modulo fileinput
per leggere da stdin
in Python. fileinput.input()
legge tutte le righe nei nomi dei file di input specificati negli argomenti della riga di comando. Se non viene specificato alcun argomento, leggerà lo standard input fornito.
L’esempio seguente illustra la lettura dal nome del file di input specificato.
Useremo il sample.txt
di seguito.
Hello
Line1
Line2
Di seguito lo script read.py
.
import fileinput
for line in fileinput.input():
print(line.rstrip())
Lo eseguiamo in questo modo:
python read.py "sample.txt"
Produzione:
Hello
Line1
Line2
L’esempio seguente illustra la lettura dallo standard input.
import fileinput
for line in fileinput.input():
print("Output:", line.rstrip())
L’esecuzione e l’output sono mostrati di seguito.
python read.py
Line 1
Output: Line 1
Line 2
Output: Line2
^Z
Possiamo salvare i dati per essere elaborati in seguito anche in questo modo:
import fileinput
data = []
for line in fileinput.input():
data.append(line.rstrip())
Nota che stiamo usando line.rstrip()
. Ovvero rimuovere la nuova riga finale.
Digitando y
si cancellano tutte le variabili.
Usa sys.stdin
per leggere da stdin
in Python
Un altro approccio è usare sys.stdin
per leggere da stdin
in Python. L’esempio seguente illustra la lettura dei dati da stdin
riga per riga:
import sys
for line in sys.stdin:
print("Output:", line.rstrip())
L’esecuzione e l’output sono mostrati di seguito.
python read.py
Line 1
Output: Line 1
Line 2
Output: Line2
^Z
Possiamo anche leggere tutti i dati da stdin
in una volta invece che riga per riga.
L’esempio seguente lo illustra:
import sys
data = sys.stdin.readlines()
data = [line.rstrip() for line in data]
Nota che stiamo usando line.rstrip()
. Vale a rimuovere la nuova riga finale.
Conclusione
Abbiamo discusso 2 metodi, fileinput.input()
e sys.stdin
, per leggere l’input stdin
in Python. fileinput.input()
può leggere i dati dal nome file specificato nell’argomento della riga di comando o dallo standard input, mentre sys.stdin
può leggere solo i dati dallo standard input.