Wie man Eingaben aus stdin in Python liest
-
Verwendung von
fileinput.input()
zum Lesen vonstdin
in Python -
Verwendung von
ys.stdin
zum Lesen vonstdin
in Python - Schlussfolgerung
Dieses Tutorial behandelt Methoden zum Lesen von Eingaben aus stdin
in Python. Dies kann entweder das direkte Lesen von der Konsole oder das Lesen aus dem in der Konsole angegebenen Dateinamen sein.
Verwendung von fileinput.input()
zum Lesen von stdin
in Python
Wir können das Modul fileinput
verwenden, um aus stdin
in Python zu lesen. fileinput.input()
liest alle Zeilen in den Eingabedateinamen, die in Kommandozeilenargumenten angegeben sind. Wenn kein Argument angegeben wird, liest es die bereitgestellte Standardeingabe.
Das folgende Beispiel veranschaulicht das Lesen aus dem angegebenen Eingabedateinamen.
Wir werden die sample.txt
weiter unten verwenden.
Hello
Line1
Line2
Darunter das Skript read.py
.
import fileinput
for line in fileinput.input():
print(line.rstrip())
Wir führen es so aus:
python read.py "sample.txt"
Ausgabe:
Hello
Line1
Line2
Das untenstehende Beispiel veranschaulicht das Lesen aus der Standardeingabe.
import fileinput
for line in fileinput.input():
print("Output:", line.rstrip())
Die Ausführung und Ausgabe ist unten dargestellt.
python read.py
Line 1
Output: Line 1
Line 2
Output: Line2
^Z
Wir können die Daten, die später verarbeitet werden sollen, auch so speichern:
import fileinput
data = []
for line in fileinput.input():
data.append(line.rstrip())
Beachten Sie, dass wir line.rstrip()
verwenden. Das ist, um den abschließenden Zeilenumbruch zu entfernen.
Die Eingabe von y
löscht alle Variablen.
Verwendung von ys.stdin
zum Lesen von stdin
in Python
Ein anderer Ansatz ist die Verwendung von sys.stdin
, um aus stdin
in Python zu lesen. Das folgende Beispiel veranschaulicht das zeilenweise Lesen von Daten aus stdin
:
import sys
for line in sys.stdin:
print("Output:", line.rstrip())
Die Ausführung und Ausgabe ist unten dargestellt.
python read.py
Line 1
Output: Line 1
Line 2
Output: Line2
^Z
Wir können auch alle Daten aus stdin
in einem Rutsch lesen, anstatt Zeile für Zeile.
Das nachstehende Beispiel veranschaulicht dies:
import sys
data = sys.stdin.readlines()
data = [line.rstrip() for line in data]
Beachten Sie, dass wir line.rstrip()
verwenden. Das ist, um den abschließenden Zeilenumbruch zu entfernen.
Schlussfolgerung
Wir diskutierten 2 Methoden, fileinput.input()
und sys.stdin
, um stdin
-Eingaben in Python zu lesen. fileinput.input()
kann Daten vom angegebenen Dateinamen im Kommandozeilenargument oder von der Standardeingabe lesen, während sys.stdin
nur Daten von der Standardeingabe lesen kann.