Website-Suche

Wie man in Python von stdin liest


Es gibt drei Möglichkeiten, Daten von stdin in Python zu lesen.

  1. Bitte geben Sie den zu übersetzenden Text ein.
  2. Die eingebaute Funktion input()
  3. 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

Python stdin Beispiel

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 :

Python input() liest von stdin

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 :

Python fileinput.input() Liest die Standardeingabe