Wie man in Python von stdin liest
Es gibt drei Möglichkeiten, Daten von stdin in Python zu lesen.
- Bitte geben Sie den zu übersetzenden Text ein.
- Die eingebaute Funktion input()
- fileinput.input() Funktion
1. Verwenden von sys.stdin zum Lesen von der Standardeingabe
Das Python-Systemmodul stdin wird vom Interpreter für die Standardeingabe verwendet. Intern ruft es die Funktion input() auf. An den Eingabestring wird am Ende ein Zeilenumbruchzeichen (\n) angehängt. Sie können also die Funktion rstrip() verwenden, um es zu entfernen. Hier ist ein einfaches Programm, um Benutzernachrichten aus der Standardeingabe auszulesen und zu verarbeiten. Das Programm wird beendet, wenn der Benutzer die Meldung "Beenden" eingibt.
import sys
for line in sys.stdin:
if 'Exit' == line.rstrip():
break
print(f'Processing Message from sys.stdin *****{line}*****')
print("Done")
Ausgabe :
Hi
Processing Message from sys.stdin *****Hi
*****
Hello
Processing Message from sys.stdin *****Hello
*****
Exit
Done
Beachten Sie die Verwendung von rstrip(), um das nachfolgende Zeilenumbruchzeichen zu entfernen, damit wir überprüfen können, ob der Benutzer die Nachricht "Exit" eingegeben hat oder nicht.
2. Verwendung der input()-Funktion zum Lesen von stdin-Daten
Wir können auch die Python-Funktion input() verwenden, um die Standard-Eingabedaten zu lesen. Wir können auch eine Nachricht an den Benutzer ausgeben. Hier ist ein einfaches Beispiel, um die Standard-Eingabemeldung in einer Endlosschleife zu lesen und zu verarbeiten, es sei denn, der Benutzer gibt die Ausstieg-Nachricht ein.
while True:
data = input("Please enter the message:\n")
if 'Exit' == data:
break
print(f'Processing Message from input() *****{data}*****')
print("Done")
Ausgabe :
Die input()-Funktion fügt dem Benutzertext kein Zeilenumbruchzeichen hinzu.
3. Lesen von Standard-Eingaben mit dem fileinput-Modul
Wir können auch die Funktion fileinput.input() verwenden, um von der Standardeingabe zu lesen. Das fileinput-Modul bietet Hilfsfunktionen, um über die Standardeingabe oder eine Liste von Dateien zu iterieren. Wenn wir der input()-Funktion kein Argument übergeben, liest sie Argumente von der Standardeingabe. Diese Funktion funktioniert auf die gleiche Weise wie sys.stdin und fügt ein Zeilenumbruchzeichen am Ende der vom Benutzer eingegebenen Daten hinzu.
import fileinput
for fileinput_line in fileinput.input():
if 'Exit' == fileinput_line.rstrip():
break
print(f'Processing Message from fileinput.input() *****{fileinput_line}*****')
print("Done")
Ausgabe :



