In jeder Programmiersprache ist die Handhabung von Dateien ein wichtiger Aspekt. Und auch Python unterstützt die Arbeit mit Dateien in verschiedenen Modi – z.B. Lesen und Schreiben in Dateien und mehr.
Am Ende dieses Tutorials werden Sie in der Lage sein:
- dateien in Python öffnen und lesen,
- zeilen aus einer Textdatei lesen,
- in Dateien schreiben und an sie anhängen und
- kontextmanager verwenden, um mit Dateien in Python zu arbeiten.
Wie man eine Datei in Python liest
Um eine Datei in Python zu öffnen, können Sie die allgemeine Syntax verwenden: open('Dateiname','Modus')
.
- Dabei ist
'Dateiname'
der Name der Datei.
Hinweis: Wenn sich die Datei, die Sie öffnen möchten, im aktuellen Arbeitsverzeichnis befindet, können Sie nur den Namen der Datei angeben. Befindet sie sich in einem anderen Ordner in Ihrer Arbeitsumgebung, sollten Sie den Pfad zu der Datei angeben.
- Der Parameter
Modus
gibt den Modus an, in dem Sie die Datei öffnen möchten.
Der Standardmodus für das Öffnen einer Datei ist Lesen – gekennzeichnetdurch den Buchstaben
'r'
. Es ist jedoch empfehlenswert, den Modus explizit anzugeben.
Bevor wir beginnen, werfen wir einen Blick auf die Datei lib.txt
, die wir in diesem Beispiel verwenden werden.
📁 Laden Sie die Textdatei und den in diesem Tutorial verwendeten Code von diesem GitHub Repo herunter.

Der folgende Codeausschnitt zeigt, wie Sie eine Textdatei 'lib.txt'
in Python mit der Funktion open()
öffnen und ihren Inhalt lesen können.
file = open('lib.txt','r')
contents = file.read()
print(contents)
file.close()
# Ausgabe
Hallo!
Hier sind ein paar hilfreiche Python-Bibliotheken:
1) NumPy
2) pandas
3) matplotlib
4) seaborn
5) scikit-learn
6) BeautifulSoup
7) Scrapy
8) nltk
9) Bokeh
10) statsmodels
Im obigen Beispiel,
- Die Funktion
open()
gibt ein Dateiobjekt zurück, das wirfile
nennen. - Als nächstes rufen wir die Methode
read()
fürfile
auf. - Die Variable
contents
enthält nun den Inhalt der Datei. Und wir drucken ihn aus. - Schließlich schließen wir die Datei.
Wenn Sie jedoch vergessen, die Datei zu schließen, kann es zu einer Verschwendung von Ressourcen kommen. Wenn Sie mit einer großen Anzahl solcher Dateien arbeiten, kann es zu einem erheblichen Speicherverbrauch kommen. Das liegt daran, dass Sie mehrere Dateien geöffnet, aber keine davon geschlossen haben.
Lassen Sie uns nun eine bessere Methode zum Öffnen von Dateien mit Kontextmanagern kennenlernen. Der folgende Codeschnipsel zeigt, wie Sie sie verwenden können.
with open('lib.txt','r') as f:
contents = f.read()
print(contents)
Wenn Sie Kontaktmanager verwenden, um mit Dateien zu arbeiten, müssen Sie die Methode close()
nicht verwenden. Die Dateien werden automatisch geschlossen, nachdem der E/A-Vorgang abgeschlossen ist.
So lesen Sie Zeilen aus einer Datei in Python
In unserer Beispiel-Textdatei gab es nur ein paar Zeilen. Es war also kein Problem, den gesamten Inhalt der Datei auf einmal einzulesen.

Wenn Sie jedoch große Dateien einlesen müssen, ist die Verwendung der Methode read()
, wie oben gezeigt, möglicherweise nicht sehr effizient.
Wenn die Textdatei sehr groß ist, kann es sogar passieren, dass Ihnen bald der Speicher ausgeht. Aus diesem Grund möchten Sie vielleicht nur einzelne Zeilen aus einer Textdatei einlesen. Wie das geht, erfahren Sie in diesem Abschnitt.
Die Python-Methode readline() zum Lesen von Zeilen aus einer Datei verwenden
Die Methode readline()
liest eine Zeile nach der anderen aus der Datei.
Führen Sie den folgenden Codeschnipsel aus.
with open('lib.txt','r') as f:
line = f.readline()
print(line)
line = f.readline()
print(line)
# Ausgabe
Hallo!
Hier sind ein paar hilfreiche Python-Bibliotheken:
Sie können sehen, dass nach dem ersten Aufruf der readline()
-Methode die erste Zeile der Datei ausgedruckt wird. Und der zweite Aufruf der readline()
-Methode gibt die zweite Zeile in der Datei zurück.
Das liegt daran, dass sich der Dateizeiger nach dem ersten Methodenaufruf am Anfang der zweiten Zeile befindet.
In Python können Sie die Methode
tell()
verwenden, um die aktuelle Position des Dateizeigers zu ermitteln. Und um den Dateizeiger an eine bestimmte Stelle zu verschieben, können Sie dieseek()
-Methode verwenden.
In dem folgenden Codeausschnitt verwenden wir f.seek(0)
nach dem ersten Methodenaufruf. Dadurch wird der Dateizeiger an den Anfang der Textdatei bewegt. Aus diesem Grund wird in beiden Fällen die erste Zeile der Datei ausgedruckt.
with open('lib.txt','r') as f:
line = f.readline()
print(line)
f.seek(0)
line = f.readline()
print(line)
# Ausgabe
Hallo, du!
Hallo, du!
Pythons readlines()-Methode zum Lesen von Zeilen aus einer Datei verwenden
Es gibt eine weitere, eng verwandte Methode namens readlines()
.
Wenn Sie den folgenden Codeschnipsel ausführen, werden Sie sehen, dass die Methode readlines()
eine Liste aller Zeilen in der Datei zurückgibt.
with open('lib.txt','r') as f:
lines = f.readlines()
print(lines)
# Ausgabe
['Hallo, du!\n', 'Hier sind ein paar hilfreiche Python-Bibliotheken:\n',
'1) NumPy\n', '2) pandas\n', '3) matplotlib\n',
'4) seaborn\n', '5) scikit-learn\n', '6) BeautifulSoup\n',
'7) Scrapy\n', '8) nltk\n', '9) Bokeh\n', '10) statsmodels\n', '\n']
Verwendung der for-Schleife von Python zum Einlesen von Zeilen aus einer Datei
Um die Zeilen aus einer Textdatei einzulesen, können Sie auch die for-Schleife
verwenden.
Sobald Sie ein Dateiobjekt haben, können Sie die for-Schleife
verwenden, um den Inhalt der Datei Zeile für Zeile durchzugehen und auszudrucken, wie unten gezeigt. Beachten Sie, dass wir jeweils nur auf eine Zeile zugreifen und nicht den gesamten Inhalt der Datei einlesen.
with open('lib.txt','r') as f:
for line in f:
print(line, end='')
Hinweis: Wenn Sie die Funktion
print()
von Python verwenden, ist das Standard-Trennzeichen ein Zeilenumbruch-Zeichen'\n'
. Aber in der Originaldatei haben wir diese neuen Zeilen nicht. Setzen Sie also das Argument Trennzeichen auf eine leere Zeichenkette:end = ''
, um den Inhalt der Datei so zu drucken, wie er ist.
Wie man in Python Teile des Inhalts aus einer Datei liest
In Python können Sie den Inhalt der Datei auch in Form von kleinen Stücken einlesen.
Lesen Sie sich den folgenden Code durch:
- Hier setzen wir die
chunk_size
auf50
. Das bedeutet, dass die ersten 50 Zeichen der Datei eingelesen werden und dass wir sie auch ausdrucken.
- Rufen Sie nun die
tell()
-Methode für das Dateiobjektf
auf. Sie sehen, dass der Dateizeiger nun an der Position 51 steht, was den Erwartungen entspricht.
chunk_size = 50
with open('lib.txt','r') as f:
chunk = f.read(chunk_size)
print(chunk)
current = f.tell()
print(f "Aktuelle Position des Dateizeigers: {current}")
# Ausgabe
Hallo!
Hier sind ein paar hilfreiche Python-Bibliotheken
Aktuelle Position des Dateizeigers: 51
Sie können diese Technik auch verwenden, um die gesamte Datei in Form von kleinen Abschnitten einzulesen.
Der folgende Codeschnipsel zeigt, wie Sie dies tun können.
chunk_size = 50
with open('lib.txt','r') as f:
chunk = f.read(chunk_size)
print(chunk,end='')
while(len(chunk)>0):
chunk = f.read(chunk_size)
print(chunk,end='')
# Ausgabe
Hallo!
Hier sind ein paar hilfreiche Python-Bibliotheken:
1) NumPy
2) pandas
3) matplotlib
4) seaborn
5) scikit-learn
6) BeautifulSoup
7) Scrapy
8) nltk
9) Bokeh
10) statsmodels
Hier verwenden wir eine while-Schleife
, um den Inhalt der Datei zu lesen. Wir lesen den Inhalt der Datei in Chunks der Größe 50 ein, bis wir das Ende der Datei erreichen. ✅
Wie man in Python in eine Datei schreibt
Um in Python in eine Textdatei zu schreiben, sollten Sie sie im Schreibmodus öffnen und dabei 'w
‘ angeben.

Der folgende Codeschnipsel zeigt, wie das geht.
with open('new_file.txt','w') as f:
f.write('Hallo, Python!')
Sie werden sehen, dass 'new_file.txt'
in Ihrem Arbeitsverzeichnis erstellt wurde.
Führen Sie nun die obige Codezelle noch einmal aus.
Führen Sie in Ihrem Terminal den folgenden Befehl aus:
cat new_file.txt
# Ausgabe: Hallo, Python!
Im Idealfall haben wir zweimal in die Datei geschrieben. Hallo, Python!
hätte also zweimal gedruckt werden müssen, oder?
Aber Sie werden sehen, dass es nur einmal gedruckt wurde. Das liegt daran, dass Sie, wenn Sie eine Datei im Schreibmodus(w
) öffnen, den Inhalt der Datei im Grunde mit neuem Inhalt überschreiben.
Wenn Sie am Ende der Datei etwas hinzufügen möchten, ohne den vorhandenen Inhalt zu überschreiben, sollten Sie die Datei im Anfügemodus öffnen. Wie Sie dies tun, erfahren Sie im nächsten Abschnitt.
Wie man in Python an eine Datei anhängt
Wenn Sie Inhalte an eine Datei anhängen möchten, ohne sie zu überschreiben, öffnen Sie die Datei im Anhängen-Modus.
Verwenden Sie dazu `'a'
-a für append undgeben Sie den Modus explizit an.
Als nächstes führen Sie die folgende Codezelle zweimal aus.
with open('new_file.txt','a') as f:
f.write('Hallo, Python!')
Beachten Sie, dass der Text jetzt zweimal ausgedruckt wird, da wir ihn an die Datei angehängt haben.
cat new_file.txt
# Ausgabe: Hallo, Python!Hallo, Python!
Fazit
Lassen Sie uns kurz zusammenfassen, was wir in diesem Tutorial besprochen haben.
- Sie haben die üblichen Datei-E/A-Operationen wie Lesen, Schreiben und Anhängen an eine Datei gelernt.
- Außerdem haben Sie gelernt, wie Sie die seek() -Methode verwenden, um den Dateizeiger an eine bestimmte Position zu bewegen, und
- wie Sie die Methode tell() verwenden, um die aktuelle Position des Dateizeigers abzufragen.
Ich hoffe, Sie haben dieses Tutorial hilfreich gefunden. Nachdem Sie nun gelernt haben, wie Sie mit Textdateien in Python arbeiten können, erfahren Sie nun, wie Sie mit JSON-Dateien in Python arbeiten können.
Verwandt:
Prüfen Sie die Länge einer Liste in Python in 3 Schritten.