Eingabe und Ausgabe in Python verarbeiten

PythonBeginner
Jetzt üben

Einführung

In diesem Lab lernen Sie die grundlegenden Konzepte der Handhabung von Eingabe und Ausgabe (Input/Output) in Python kennen. Wir werden untersuchen, wie Informationen mithilfe der print()-Funktion auf der Konsole angezeigt werden und wie Benutzereingaben über die Tastatur erfasst werden.

Darüber hinaus sammeln Sie praktische Erfahrungen beim Schreiben von Daten in Dateien und beim Zurücklesen dieser Daten. Dies sind wesentliche Fähigkeiten für jedes Python-Programm, das mit Benutzern interagieren oder mit in Dateien gespeicherten Daten arbeiten muss.

Strings auf der Konsole ausgeben

In Python ist die primäre Funktion zur Anzeige von Ausgaben auf der Konsole print(). Ihre Verwendung ist unkompliziert. In diesem Schritt üben Sie die Verwendung von print(), um Text anzuzeigen.

Suchen Sie zunächst im Dateiexplorer auf der linken Seite der WebIDE die Datei output.py. Doppelklicken Sie darauf, um sie im Editor zu öffnen.

Fügen Sie die folgenden Codezeilen zu output.py hinzu:

print("Hello, LabEx!")
print("This is a Python course.")

Speichern Sie die Datei (Sie können die Tastenkombination Strg+S verwenden). Um dieses Skript auszuführen, öffnen Sie das Terminal am unteren Rand der WebIDE und führen Sie den folgenden Befehl aus. Das Terminal sollte sich bereits im Verzeichnis ~/project befinden.

python ~/project/output.py

Sie sehen die folgende Ausgabe im Terminal:

Hello, LabEx!
This is a Python course.

Die Funktion print() kann auch mehrere durch Kommas getrennte Argumente entgegennehmen. Standardmäßig werden diese mit einem einzigen Leerzeichen dazwischen ausgegeben.

Ändern Sie die Datei output.py und ersetzen Sie ihren Inhalt durch die folgende Zeile:

print("Apple", "Banana", "Orange", "Grape", "Watermelon")

Speichern Sie die Datei und führen Sie sie erneut im Terminal aus:

python ~/project/output.py

Die Ausgabe wird sein:

Apple Banana Orange Grape Watermelon

Sie können den Trennwert (Separator) mithilfe des Parameters sep anpassen. Der Standardwert für sep ist ein Leerzeichen (' '). Ändern wir ihn in einen vertikalen Strich.

Ändern Sie output.py ein weiteres Mal:

print("Apple", "Banana", "Orange", "Grape", "Watermelon", sep=" | ")

Speichern und führen Sie das Skript aus:

python ~/project/output.py

Die Ausgabe verwendet nun Ihren benutzerdefinierten Trennwert:

Apple | Banana | Orange | Grape | Watermelon

Dies demonstriert, wie Sie das Format Ihrer Konsolenausgabe steuern können.

Benutzereingaben über die Tastatur erfassen

Bisher haben unsere Skripte nur vordefinierte Inhalte angezeigt. Um Programme interaktiver zu gestalten, müssen wir Eingaben vom Benutzer erhalten. In Python erledigen Sie dies mit der Funktion input().

Suchen und öffnen Sie die Datei interactive.py im Dateiexplorer der WebIDE. Fügen Sie den folgenden Code hinzu:

name = input("Please enter your name: ")
print("Your name is:", name)

Die Funktion input() zeigt dem Benutzer eine Eingabeaufforderung (Prompt) an (der String, den Sie ihr übergeben) und wartet, bis dieser etwas eingibt und die Eingabetaste drückt. Der vom Benutzer eingegebene Text wird dann als String zurückgegeben, den wir in der Variablen name speichern.

Speichern Sie die Datei und führen Sie das Skript im Terminal aus:

python ~/project/interactive.py

Das Skript hält an und zeigt die Eingabeaufforderung an. Geben Sie einen Namen ein und drücken Sie die Eingabetaste.

Please enter your name: Labex User
Your name is: Labex User

Das Skript erfasst Ihre Eingabe und verwendet sie in der abschließenden print()-Anweisung. Dies ist eine grundlegende Technik zur Erstellung interaktiver Kommandozeilenanwendungen.

Daten in eine Datei schreiben

Das Lesen aus und das Schreiben in Dateien sind gängige und wesentliche I/O-Operationen (Input/Output). Python stellt die eingebaute Funktion open() zur Dateiverwaltung bereit.

Die grundlegende Syntax lautet open(dateiname, modus). Das Argument modus gibt an, wie die Datei verwendet wird. Häufige Modi umfassen:

  • 'w': Schreibmodus (Write mode). Erstellt eine neue Datei zum Schreiben. Wenn die Datei bereits existiert, wird ihr Inhalt gelöscht.
  • 'r': Lesemodus (Read mode). Öffnet eine vorhandene Datei zum Lesen. Dies ist der Standardmodus.
  • 'a': Anhängemodus (Append mode). Öffnet eine Datei, um Inhalte am Ende hinzuzufügen. Wenn die Datei nicht existiert, wird sie erstellt.

Die empfohlene Methode zur Arbeit mit Dateien ist die Verwendung der with-Anweisung, die die Datei automatisch für Sie schließt, selbst wenn Fehler auftreten.

Üben wir dies, indem wir etwas Text in eine Datei schreiben. Öffnen Sie die Datei file_io.py im WebIDE-Editor und fügen Sie den folgenden Code hinzu:

with open("book.txt", "w") as f:
    f.write("Bed before bright moonlight,\n")
    f.write("Suspected to be frost on the ground.\n")
    f.write("Head held high, gazing at the bright moon,\n")
    f.write("Head bowed low, thinking of my homeland.")

Dieser Code öffnet eine Datei namens book.txt im Schreibmodus ('w'). Die Methode f.write() schreibt Strings in die Datei. Das Zeichen \n steht für einen Zeilenumbruch, sodass jeder write-Aufruf in einer neuen Zeile endet.

Speichern Sie die Datei und führen Sie das Skript im Terminal aus:

python ~/project/file_io.py

Dieser Befehl erzeugt keine Konsolenausgabe, erstellt jedoch eine neue Datei namens book.txt in Ihrem Verzeichnis ~/project. Sie können ihren Inhalt mithilfe des Befehls cat im Terminal anzeigen:

cat ~/project/book.txt

Die Ausgabe sollte der Text sein, den Sie in die Datei geschrieben haben:

Bed before bright moonlight,
Suspected to be frost on the ground.
Head held high, gazing at the bright moon,
Head bowed low, thinking of my homeland.

Die Verwendung der with-Anweisung ist eine Best Practice, da sie sicherstellt, dass die Datei nach der Ausführung des Codeblocks ordnungsgemäß geschlossen wird.

Daten aus einer Datei lesen

Nachdem wir nun book.txt erstellt und beschrieben haben, lernen wir, wie man dessen Inhalt liest. Python bietet verschiedene Methoden zum Lesen von Dateien. Wir werden die gängigsten untersuchen.

Wir arbeiten weiterhin mit dem Skript file_io.py. Sie werden Code hinzufügen, um die gerade erstellte Datei zu lesen.

Die Methode read()

Die Methode read() liest den gesamten Inhalt einer Datei und gibt ihn als einen einzigen String zurück.

Fügen Sie den folgenden Code am Ende Ihres Skripts file_io.py hinzu. Dadurch wird das Skript zuerst die Datei schreiben und sie dann erneut lesen und ihren Inhalt ausgeben.

## Der Schreibcode aus dem vorherigen Schritt sollte darüber stehen

print("\n--- Gesamte Datei mit read() lesen ---")
with open("book.txt", "r") as f:
    content = f.read()
    print(content)

Speichern Sie die Datei und führen Sie sie im Terminal aus:

python ~/project/file_io.py

Die Ausgabe enthält nun den Inhalt von book.txt, der auf der Konsole ausgegeben wird:

--- Reading entire file with read() ---
Bed before bright moonlight,
Suspected to be frost on the ground.
Head held high, gazing at the bright moon,
Head bowed low, thinking of my homeland.

Über Zeilen iterieren

Eine speichereffizientere Methode zum Lesen einer Datei, insbesondere einer großen, besteht darin, sie Zeile für Zeile zu verarbeiten. Dies können Sie erreichen, indem Sie direkt in einer for-Schleife über das Datei-Objekt iterieren.

Fügen Sie nun diesen nächsten Codeblock zu file_io.py hinzu:

print("\n--- Datei Zeile für Zeile lesen ---")
with open("book.txt", "r") as f:
    for line in f:
        print(line, end='')

Hier verhindert end='' in der print()-Funktion, dass ein zusätzlicher Zeilenumbruch hinzugefügt wird, da jede aus der Datei gelesene line bereits mit einem Zeilenumbruchzeichen (\n) endet.

Speichern Sie und führen Sie das Skript erneut aus:

python ~/project/file_io.py

Die Ausgabe für diesen Abschnitt wird identisch mit der Ausgabe der read()-Methode sein, aber der zugrunde liegende Prozess ist anders, da jeweils nur eine Zeile gelesen wird.

Die Methode readlines()

Die Methode readlines() liest alle Zeilen aus einer Datei und gibt sie als Liste von Strings zurück.

Fügen Sie abschließend diesen letzten Codeblock zu file_io.py hinzu:

print("\n\n--- Alle Zeilen mit readlines() lesen ---")
with open("book.txt", "r") as f:
    all_lines = f.readlines()
    print(all_lines)

Speichern Sie und führen Sie das Skript ein letztes Mal aus:

python ~/project/file_io.py

Die Ausgabe für diesen Abschnitt ist eine Python-Liste, wobei jedes Element ein String ist, der eine Zeile aus der Datei darstellt:

--- Reading all lines with readlines() ---
['Bed before bright moonlight,\n', 'Suspected to be frost on the ground.\n', 'Head held high, gazing at the bright moon,\n', 'Head bowed low, thinking of my homeland.']

Sie haben nun die grundlegenden Methoden zum Schreiben in und Lesen aus Dateien in Python geübt.

Zusammenfassung

In diesem Lab haben Sie die grundlegenden Techniken für die Handhabung von Input und Output (I/O) in Python erlernt. Sie begannen mit der Verwendung der Funktion print(), um formatierte Texte auf der Konsole anzuzeigen, einschließlich der Anpassung von Trennzeichen (Separators). Anschließend machten Sie Ihre Programme interaktiv, indem Sie Benutzereingaben über die Tastatur mit der Funktion input() erfassten.

Zuletzt haben Sie sich mit Datei-I/O-Operationen beschäftigt. Sie lernten, wie man Daten mithilfe von open() im Schreibmodus (write mode) unter Verwendung der empfohlenen with-Anweisung in eine Datei schreibt. Sie übten auch das Zurücklesen von Daten aus einer Datei mithilfe verschiedener Methoden, darunter read(), die zeilenweise Iteration und readlines(). Diese Fähigkeiten sind grundlegend für die Entwicklung komplexerer Python-Anwendungen, die mit Benutzern und Daten interagieren.