Dateien lesen und schreiben

PythonPythonBeginner
Jetzt üben

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

Einführung

In diesem Lab werden wir lernen, wie man in Python Dateien einliest und schreibt. Wir beginnen mit einfachen Beispielen und erhöhen schrittweise die Komplexität des Codes.

Dateien zu lesen und zu schreiben ist ein essentielles Fachwissen in jeder Programmiersprache. Es ermöglicht uns, Daten dauerhaft zu speichern und zu manipulieren und ist ein Schlüsselbaustein für viele Anwendungen.
In Python ist das Lesen und Schreiben von Dateien einfach und leicht zu erlernen. Wir beginnen damit, zu lernen, wie man eine Datei liest, und gehen dann zur Dateischreibung über.

Errungenschaften

  • Dateien einlesen und schreiben

Ein Datei lesen

Um in Python eine Datei zu lesen, verwenden wir die open-Funktion, die ein Dateiobjekt zurückgibt. Anschließend können wir verschiedene Methoden des Dateiobjekts verwenden, um den Inhalt der Datei zu lesen.

Öffnen Sie eine neue Python-Interpreter-Sitzung und geben Sie folgenden Code ein:

python3

Hier ist ein Beispiel dafür, wie man eine Textdatei öffnet und liest:

## Öffnen der Datei
f = open('filename.txt', 'r')

## Lesen des Dateiinhalts
contents = f.read()

## Ausgabe des Inhalts
print(contents)

## Schließen der Datei
f.close()

Die open-Funktion nimmt zwei Argumente entgegen: den Dateinamen und den Modus, in dem die Datei geöffnet werden soll. In diesem Fall verwenden wir den Modus 'r', was für "read" (lesen) steht. Dies ist der Standardmodus, so dass wir auch open('filename.txt') schreiben könnten.

Die read-Methode des Dateiobjekts gibt den Inhalt der Datei als Zeichenfolge zurück. Anschließend können wir den Inhalt ausgeben oder ihn auf beliebige Weise manipulieren.

Es ist wichtig, die Datei zu schließen, wenn wir damit fertig sind, um die Systemressourcen freizugeben. Wir können dies mit der close-Methode des Dateiobjekts tun.

Eine Datei schreiben

Um in Python in eine Datei zu schreiben, verfolgen wir einen ähnlichen Prozess wie beim Lesen einer Datei. Wir verwenden die open-Funktion, um ein Dateiobjekt zu erhalten, und verwenden dann die write-Methode, um in die Datei zu schreiben.

Hier ist ein Beispiel dafür, wie man eine Datei zum Schreiben öffnet und ihr einige Text schreibt:

## Öffnen der Datei
f = open('filename.txt', 'w')

## Schreiben von Text in die Datei
f.write('Hello, world!\nPython')

## Schließen der Datei
f.close()

Wie beim Lesen einer Datei verwenden wir die open-Funktion, um ein Dateiobjekt zu erhalten. Diesmal verwenden wir den Modus 'w', was für "write" (schreiben) steht. Dies wird die Datei erstellen, wenn sie noch nicht existiert, und überschreiben, wenn sie bereits existiert.

Die write-Methode nimmt eine Zeichenfolge als Argument entgegen und schreibt sie in die Datei. Wie beim Lesen einer Datei ist es wichtig, die Datei zu schließen, wenn wir damit fertig sind.

Arbeiten mit Dateiinhalten

Jetzt, da wir wissen, wie man Dateien einliest und schreibt, schauen wir uns einige fortgeschrittene Beispiele für das Arbeiten mit Dateiinhalten an.

Zeilenweise Lesen einer Datei

Manchmal möchten wir eine Datei zeilenweise lesen, anstatt den gesamten Inhalt auf einmal zu lesen. Dazu können wir die readline-Methode des Dateiobjekts verwenden.
Hier ist ein Beispiel dafür, wie man eine Datei zeilenweise liest:

## Öffnen der Datei
f = open('filename.txt', 'r')

## Lesen und Ausgeben jeder Zeile
for line in f:
    print(line)

## Schließen der Datei
f.close()

Die for-Schleife iteriert über die Zeilen der Datei. In jeder Iteration liest und gibt sie die aktuelle Zeile aus. Wenn keine weiteren Zeilen mehr vorhanden sind, endet die Schleife und die Datei wird geschlossen.

Zeilenweise Schreiben in eine Datei

Um in eine Datei zeilenweise zu schreiben, können wir die writelines-Methode des Dateiobjekts verwenden. Diese Methode nimmt eine Liste von Zeichenfolgen als Argument entgegen und schreibt sie in die Datei, wobei jede Zeichenfolge in der Liste eine separate Zeile in der Datei wird.

Hier ist ein Beispiel dafür, wie man in eine Datei zeilenweise schreibt:

## Öffnen der Datei
f = open('filename.txt', 'w')

## Schreiben einer Liste von Zeilen in die Datei
lines = ['Line 1', 'Line 2', 'Line 3']
f.writelines(lines)

## Schließen der Datei
f.close()

Anhängen an eine Datei

Um an eine Datei anzuhängen, anstatt sie zu überschreiben, können wir den 'a'-Modus verwenden, wenn wir die Datei öffnen. Dies wird die Datei im Anhängemodus öffnen und uns ermöglichen, neues Inhalt am Ende der Datei hinzuzufügen, ohne den bestehenden Inhalt zu überschreiben.

Hier ist ein Beispiel dafür, wie man an eine Datei anhängt:

## Öffnen der Datei
f = open('filename.txt', 'a')

## Anhängen von Text an die Datei
f.write('This is new content')

## Schließen der Datei
f.close()

with-Anweisung

Die with-Anweisung in Python wird verwendet, um die Ausführung eines Codeblocks mit Methoden zu umschließen, die von einem Kontext-Manager definiert werden. Ein Kontext-Manager ist ein Objekt, das die Methoden __enter__ und __exit__ definiert. Die with-Anweisung erstellt einen temporären Kontext-Manager für die Dauer des eingerückten Codeblocks, der ihr folgt.

Die open-Funktion ist eine integrierte Python-Funktion, die ein Dateiobjekt zurückgibt, das eine geöffnete Datei repräsentiert. Wenn man mit Dateien arbeitet, ist es wichtig, sie zu schließen, wenn man damit fertig ist, um die Systemressourcen freizugeben. Die with-Anweisung vereinfacht das Arbeiten mit Dateien, da sie die Datei automatisch schließt, wenn der Codeblock verlassen wird, auch wenn eine Ausnahme ausgelöst wird.

Hier ist ein Beispiel dafür, wie man die with-Anweisung verwendet, um eine Datei zu öffnen und zu lesen:

with open('filename.txt', 'r') as f:
    contents = f.read()
    print(contents)

In diesem Beispiel wird die open-Funktion innerhalb der with-Anweisung aufgerufen, um die Datei 'filename.txt' im Lesemodus zu öffnen. Das Dateiobjekt wird dann an die as-Klausel übergeben, wo es den Namen f erhält. Der eingerückte Codeblock, der der with-Anweisung folgt, kann dann das Dateiobjekt f verwenden, um den Inhalt der Datei zu lesen.

Wenn der Codeblock verlassen wird, wird die Datei automatisch geschlossen vom Kontext-Manager, auch wenn eine Ausnahme ausgelöst wird. Dies bedeutet, dass wir nicht explizit die close-Methode des Dateiobjekts aufrufen müssen.

Das Verwenden der with-Anweisung, um die Lebensdauer eines Dateiobjekts zu verwalten, wird empfohlen gegenüber dem manuellen Öffnen und Schließen der Datei, da es kürzer ist und gewährleistet, dass die Datei immer richtig geschlossen wird, auch wenn eine Ausnahme ausgelöst wird.

Zusammenfassung

In diesem Lab haben wir gelernt, wie man in Python Dateien einliest und schreibt. Wir haben gesehen, wie man Dateien öffnet und schließt, wie man deren Inhalte liest und schreibt und wie man auf fortgeschrittene Weise mit Dateiinhalten umgeht. Wir haben auch gesehen, wie man verschiedene Modi beim Öffnen von Dateien verwendet, um die Art der Zugriffe zu steuern.

Am Ende dieses Labs sollten Sie in der Lage sein, mit Zuversicht Dateien in Python einzulesen und zu schreiben.