Wie man Eingaben aus stdin in Python liest

Hassan Saeed 30 Januar 2023
  1. Verwendung von fileinput.input() zum Lesen von stdin in Python
  2. Verwendung von ys.stdin zum Lesen von stdin in Python
  3. Schlussfolgerung
Wie man Eingaben aus stdin in Python liest

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

Python liest Eingabe von stdin

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.

Verwandter Artikel - Python Input