Ein- und Ausgabe in Python verarbeiten

PythonPythonBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Labor lernen Sie die grundlegenden Konzepte der Ein- und Ausgabe in Python kennen. Wir werden untersuchen, wie Informationen mit der print()-Funktion auf der Konsole angezeigt werden, einschließlich der Steuerung von Trennzeichen zwischen mehreren Argumenten.

Darüber hinaus sammeln Sie praktische Erfahrungen beim Abrufen von Benutzereingaben über die Tastatur, beim Schreiben von Daten in Dateien und beim Lesen von Daten aus Dateien zurück, wodurch Sie wesentliche Fähigkeiten für die Interaktion mit externen Datenquellen in Ihren Python-Programmen erwerben.

Strings auf der Konsole ausgeben

In diesem Schritt lernen wir, wie man Ausgaben in Python auf der Konsole anzeigt. Die primäre Funktion für diesen Zweck ist die print()-Funktion. Wir sind dieser Funktion in früheren Abschnitten bereits mehrmals begegnet, und ihre Verwendung ist unkompliziert.

Erstellen Sie zunächst eine neue Python-Datei im Verzeichnis ~/project mit der WebIDE. Nennen Sie die Datei output.py.

touch ~/project/output.py

Öffnen Sie nun output.py im WebIDE-Editor und fügen Sie die folgenden Codezeilen hinzu:

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

Speichern Sie die Datei. Um dieses Python-Skript auszuführen, öffnen Sie das Terminal in der WebIDE (falls es noch nicht geöffnet ist) und führen Sie den folgenden Befehl aus dem Verzeichnis ~/project aus:

python ~/project/output.py

Sie sollten die folgende Ausgabe im Terminal sehen:

Hello, LabEx!
This is a Python course.

Die print()-Funktion kann auch mehrere Argumente akzeptieren, die durch Kommas getrennt sind. Standardmäßig werden diese Argumente mit einem Leerzeichen dazwischen ausgegeben.

Ändern wir die Datei output.py, um dies zu demonstrieren. Öffnen Sie output.py im Editor und ersetzen Sie den vorhandenen Inhalt durch Folgendes:

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 fragen sich vielleicht, ob Sie das Trennzeichen zwischen den Argumenten ändern können. Die print()-Funktion verfügt über einen Parameter namens sep, der speziell zum Festlegen des Trennzeichens dient. Der Standardwert für sep ist ein Leerzeichen.

Ändern wir output.py erneut, um das Trennzeichen zu ändern. Öffnen Sie die Datei und ändern Sie den Inhalt zu:

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

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

python ~/project/output.py

Die Ausgabe wird nun sein:

Apple | Banana | Orange | Grape | Watermelon

Sie können mit anderen Zeichen als Trennzeichen experimentieren, z. B. mit Sternchen (*) oder anderen Symbolen. Wir werden in späteren Abschnitten mehr über die print()-Funktion und die String-Formatierung erfahren.

Benutzereingaben von der Tastatur erhalten

In früheren Schritten haben wir nur vordefinierte Inhalte ausgegeben. Dies mangelt an Interaktivität. In diesem Schritt lernen wir, wie man mit der input()-Funktion Eingaben von der Tastatur erhält.

Erstellen wir eine neue Python-Datei im Verzeichnis ~/project namens name.py.

touch ~/project/name.py

Öffnen Sie name.py im WebIDE-Editor und fügen Sie den folgenden Code hinzu:

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

Speichern Sie die Datei. Führen Sie nun das Skript im Terminal im Verzeichnis ~/project aus:

python ~/project/name.py

Wenn Sie das Skript ausführen, sehen Sie im Terminal die Aufforderung "Please enter your name: ". Geben Sie Ihren Namen ein und drücken Sie Enter.

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

Wie Sie sehen können, erfasst die input()-Funktion problemlos die von Ihnen eingegebenen Zeichen und weist sie der Variablen name zu. Sie können die Variable name dann nach Bedarf verwenden.

Es ist wichtig, auf die Zeichensetzung zu achten. Nur innerhalb von Strings können Sie Vollbreiten-Zeichen (wie chinesische Satzzeichen) verwenden. An allen anderen Stellen müssen Sie Halbbreiten-englische Satzzeichen verwenden.

Daten in eine Datei schreiben

In diesem Schritt werden wir untersuchen, wie man Datei-Ein- und Ausgabevorgänge in Python durchführt. Das Lesen und Schreiben von Dateien sind gängige I/O-Operationen. In Python verwenden wir typischerweise die open()-Funktion für Dateioperationen.

Die grundlegende Verwendung der open()-Funktion ist open(filename, mode='r'), wobei filename der Name der Datei ist und mode angibt, wie die Datei geöffnet werden soll.

  • 'r' bedeutet, dass die Datei nur gelesen werden kann.
  • 'w' bedeutet, dass die Datei nur beschrieben werden kann (vorhandene Dateien mit demselben Namen werden überschrieben).
  • 'a' bedeutet, dass die Datei zum Anhängen geöffnet wird; alle geschriebenen Daten werden automatisch am Ende der Datei hinzugefügt.
  • 'r+' bedeutet, dass die Datei sowohl zum Lesen als auch zum Schreiben geöffnet wird.
  • 'rb' bedeutet, dass eine Binärdatei zum Lesen geöffnet wird.
  • 'wb' bedeutet, dass eine Binärdatei zum Schreiben geöffnet wird.
    Und so weiter. Der Parameter mode ist optional, und der Standardwert ist 'r'.

Beginnen wir damit, Daten in eine Datei zu schreiben. Erstellen Sie eine neue Python-Datei namens file_write.py im Verzeichnis ~/project.

touch ~/project/file_write.py

Öffnen Sie file_write.py im WebIDE-Editor und fügen Sie den folgenden Inhalt hinzu:

## Open a file in write mode ('w')
f = open("book.txt", "w")

## Write content to the file
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.")

## Close the opened file
f.close()

Speichern Sie die Datei. Führen Sie nun das Skript vom Terminal im Verzeichnis ~/project aus:

python ~/project/file_write.py

Nachdem das Skript ausgeführt wurde, wird eine neue Datei namens book.txt im Verzeichnis ~/project erstellt. Sie können ihren Inhalt mit dem Befehl cat im Terminal anzeigen:

cat ~/project/book.txt

Die Ausgabe sollte sein:

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.

Im obigen Beispiel haben wir die write()-Methode verwendet, um Inhalt zu schreiben. \n ist das Zeilenumbruchzeichen.

Es ist entscheidend, sich daran zu erinnern, die Datei sofort nach dem Öffnen und Schreiben mit f.close() zu schließen. Dies stellt sicher, dass die Schreiboperation sofort abgeschlossen wird. Andernfalls werden die Daten möglicherweise erst geschrieben, wenn das Programm eine neue Datei öffnet oder wenn das Programm beendet wird. Machen Sie es sich daher immer zur Gewohnheit, die folgende Reihenfolge einzuhalten: open -> write -> close.

Während das Obige eine Standardmethode zur Dateibehandlung ist, empfiehlt die offizielle Python-Dokumentation die Verwendung des Schlüsselworts with für Dateioperationen. Der obige Code kann wie folgt umgeschrieben werden:

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.")

Die Verwendung des with-Schlüsselworts macht den Code kürzer und stellt sicher, dass die Datei ordnungsgemäß geschlossen wird, wenn der Block verlassen wird, auch wenn eine Ausnahme auftritt.

Aktualisieren wir unsere file_write.py, um die with-Anweisung zu verwenden. Öffnen Sie die Datei im Editor und ersetzen Sie den Inhalt durch die Version mit der with-Anweisung.

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.")

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

python ~/project/file_write.py

Die Datei book.txt wird mit demselben Inhalt überschrieben. Sie können dies mit cat überprüfen:

cat ~/project/book.txt

Die Ausgabe wird dieselbe sein wie zuvor.

Daten aus einer Datei lesen

In diesem Schritt lernen wir, wie man Daten aus der book.txt-Datei liest, die wir im vorherigen Schritt erstellt haben. Beim Lesen von Dateien haben wir drei Hauptmethoden: read(), readline() und readlines(). Lassen Sie uns jede davon untersuchen.

Erstellen Sie zunächst eine neue Python-Datei namens file_read.py im Verzeichnis ~/project.

touch ~/project/file_read.py

Die read()-Methode

Die Methode read(size) hat einen optionalen Parameter size. Wenn size weggelassen wird oder negativ ist, liest und gibt sie den gesamten Inhalt der Datei zurück. Wenn size eine positive Ganzzahl ist, liest und gibt sie size Zeichen (im Textmodus) oder size Bytes (im Binärmodus) zurück.

Öffnen Sie file_read.py im WebIDE-Editor und fügen Sie den folgenden Code hinzu, um den gesamten Inhalt von book.txt zu lesen:

## Open the file in read mode ('r' is default)
f = open("book.txt")

## Read the entire content
content = f.read()
print(content)

## Close the file
f.close()

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

python ~/project/file_read.py

Die Ausgabe sollte der gesamte Inhalt von book.txt sein:

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.

Das Lesen einer Datei beginnt am Anfang. Sobald Sie bis zum Ende der Datei gelesen haben, geben nachfolgende Aufrufe von read() einen leeren String '' zurück.

Lassen Sie uns file_read.py ändern, um das Lesen einer bestimmten Anzahl von Zeichen zu demonstrieren. Ändern Sie den Inhalt zu:

## Open the file
f = open("book.txt")

## Read the first 13 characters
first_part = f.read(13)
print(first_part)

## Read the rest of the content
rest_of_content = f.read()
print(rest_of_content)

## Close the file
f.close()

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

python ~/project/file_read.py

Die Ausgabe zeigt die ersten 13 Zeichen gefolgt vom restlichen Inhalt:

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

Dies zeigt, wie read(size) funktioniert und wie nachfolgende Lesevorgänge dort fortfahren, wo der vorherige Lesevorgang aufgehört hat.

Die readline()-Methode

Während read() nach Zeichen oder Bytes liest, liest die Methode readline() eine Datei Zeile für Zeile.

Lassen Sie uns file_read.py ändern, um readline() zu verwenden. Ändern Sie den Inhalt zu:

## Open the file
f = open("book.txt")

## Read the first line
line1 = f.readline()
print(line1)

## Read the second line
line2 = f.readline()
print(line2)

## Close the file
f.close()

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

python ~/project/file_read.py

Die Ausgabe sind die ersten beiden Zeilen von book.txt:

Bed before bright moonlight,

Suspected to be frost on the ground.

Beachten Sie die zusätzliche Leerzeile in der Ausgabe. Das liegt daran, dass jede von readline() gelesene Zeile das Zeilenumbruchzeichen (\n) am Ende enthält, und print() fügt standardmäßig ebenfalls einen Zeilenumbruch hinzu.

Ähnlich wie bei read() gibt ein Aufruf von readline() nach Erreichen des Dateiendes einen leeren String '' zurück.

Die readlines()-Methode

Die Methode readlines() liest alle Zeilen einer Datei und gibt sie als Liste von Strings zurück, wobei jeder String eine Zeile aus der Datei ist (einschließlich des Zeilenumbruchzeichens).

Lassen Sie uns file_read.py ein letztes Mal ändern, um readlines() zu verwenden. Ändern Sie den Inhalt zu:

## Open the file
f = open("book.txt")

## Read all lines into a list
all_lines = f.readlines()
print(all_lines)

## Close the file
f.close()

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

python ~/project/file_read.py

Die Ausgabe ist eine Liste, die alle Zeilen aus book.txt enthält:

['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.']

Denken Sie daran, wie wichtig es ist, die Datei zu schließen, nachdem Sie fertig sind, von ihr zu lesen. Genau wie beim Schreiben ist die Verwendung der with-Anweisung auch für das Lesen der empfohlene Ansatz, da sie das Schließen der Datei automatisch handhabt.

So würden Sie die gesamte Datei mit with lesen:

with open("book.txt", "r") as f:
    content = f.read()
    print(content)

Und Zeile für Zeile mit with lesen:

with open("book.txt", "r") as f:
    for line in f:
        print(line, end='') ## Verwenden Sie end='', um zusätzliche Zeilenumbrüche zu vermeiden

Und alle Zeilen mit with in eine Liste lesen:

with open("book.txt", "r") as f:
    all_lines = f.readlines()
    print(all_lines)

Üben Sie die Verwendung dieser verschiedenen Methoden, um sich mit dem Lesen von Daten aus Dateien in Python vertraut zu machen.

Zusammenfassung

In diesem Lab haben wir grundlegende Techniken für die Ein- und Ausgabe in Python gelernt. Wir begannen damit, wie man Informationen auf der Konsole mit der vielseitigen print()-Funktion anzeigt. Wir übten das Drucken einzelner und mehrerer Strings und entdeckten, wie man den Trenner zwischen Argumenten mit dem sep-Parameter anpasst.

Anschließend befassten wir uns mit der Eingabe von Daten vom Benutzer über die Tastatur, dem Schreiben von Daten in Dateien und dem Lesen von Daten aus Dateien. Diese Schritte rüsteten uns mit den wesentlichen Fähigkeiten aus, um mit Benutzern zu interagieren und persistente Datenspeicherung in Python-Programmen zu verwalten.