In jeder Programmiersprache ist die Handhabung von Dateien ein wichtiger Aspekt. Und Python unterstützt auch das Arbeiten mit Dateien in verschiedenen Modi – z. B. Lesen und Schreiben in Dateien und mehr.
Am Ende dieses Tutorials können Sie:
- öffnen und lesen Dateien in Python,
- Zeilen aus einer Textdatei lesen,
- schreiben und an Dateien anhängen und
- Verwenden Sie Kontextmanager, um mit Dateien in Python zu arbeiten.
How to Read File in Python
Um eine Datei in Python zu öffnen, können Sie die allgemeine Syntax verwenden: open('file_name','mode')
.
- Hier
file_name
ist 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 nennen. Wenn sie sich in einem anderen Ordner in Ihrer Arbeitsumgebung befindet, sollten Sie den Pfad zu der Datei angeben.
- Der Parameter
mode
gibt den Modus an, in dem Sie die Datei öffnen möchten.
Der Standardmodus zum Öffnen einer Datei ist lesen– mit dem Buchstaben bezeichnet
'r'
. Es wird jedoch empfohlen, 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 in diesem Tutorial verwendete Textdatei und den Code von herunter dieses GitHub Repo.

Das folgende Code-Snippet zeigt, wie Sie eine Textdatei öffnen können 'lib.txt'
in Python mit open()
Funktion, und lesen Sie seinen Inhalt.
file = open('lib.txt','r')
contents = file.read()
print(contents)
file.close()
# Output
Hello, there!
Here are a few helpful Python libraries:
1) NumPy
2) pandas
3) matplotlib
4) seaborn
5) scikit-learn
6) BeautifulSoup
7) Scrapy
8) nltk
9) Bokeh
10) statsmodels
Im obigen Beispiel ist
- Die
open()
Die Funktion gibt ein Dateiobjekt zurück, und wir entscheiden uns, es aufzurufenfile
. - Als nächstes nennen wir die
read()
Methode auffile
. - Die Variable
contents
enthält nun den Inhalt der Datei. Und wir drucken es aus. - Abschließend schließen wir die Datei.
Wenn Sie jedoch vergessen, die Datei zu schließen, werden möglicherweise Ressourcen verschwendet. Wenn Sie mit einer großen Anzahl solcher Dateien arbeiten, kann es zu einer erheblichen Speicherauslastung kommen. Dies liegt daran, dass Sie mehrere Dateien geöffnet, aber keine davon geschlossen haben.
Lassen Sie uns nun einen besseren Weg zum Öffnen von Dateien mit lernen Kontextmanager. Das folgende Code-Snippet 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 nicht verwenden close()
Methode. Die Dateien werden automatisch geschlossen, nachdem die E/A-Operation abgeschlossen ist.
How to Read Lines from File in Python
In unserer Beispieltextdatei hatten wir nur wenige Zeilen. Das Einlesen aller Dateiinhalte auf einmal war also kein Problem.

Wenn Sie jedoch große Dateien einlesen müssen, verwenden Sie die read()
Methode, wie oben gezeigt, möglicherweise nicht sehr effizient.
Wenn die Textdatei sehr groß ist, kann es sogar passieren, dass Ihnen bald der Speicherplatz ausgeht. Aus diesem Grund möchten Sie vielleicht schreibgeschützte Zeilen aus einer Textdatei einlesen, und Sie werden in diesem Abschnitt lernen, wie das geht.
Verwenden der readline()-Methode von Python zum Lesen von Zeilen aus einer Datei
Die readline()
-Methode liest jeweils eine Zeile aus der Datei.
Führen Sie das folgende Code-Snippet aus.
with open('lib.txt','r') as f:
line = f.readline()
print(line)
line = f.readline()
print(line)
# Output
Hello, there!
Here are a few helpful Python libraries:
Das sieht man nach dem ersten readline()
Methodenaufruf wird die erste Zeile der Datei ausgegeben. Und der zweite Aufruf an die readline()
-Methode gibt die zweite Zeile in der Datei zurück.
Denn nach dem ersten Methodenaufruf steht der Dateizeiger am Anfang der zweiten Zeile.
In Python können Sie die verwenden
tell()
-Methode, um die aktuelle Position des Dateizeigers abzurufen. Und um den Dateizeiger an einen bestimmten Ort zu verschieben, können Sie die verwendenseek()
Methode.
Im folgenden Code-Snippet verwenden wir f.seek(0)
nach dem ersten Methodenaufruf. Dadurch wird der Dateizeiger an den Anfang der Textdatei verschoben. Deshalb wird beide Male 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)
# Output
Hello, there!
Hello, there!
Verwenden der readlines()-Methode von Python zum Lesen von Zeilen aus einer Datei
Es gibt eine andere eng verwandte Methode namens readlines()
.
Wenn Sie das folgende Code-Snippet ausführen, sehen Sie, dass die readlines()
-Methode gibt eine Liste aller Zeilen in der Datei zurück.
with open('lib.txt','r') as f:
lines = f.readlines()
print(lines)
# Output
['Hello, there!\n', 'Here are a few helpful Python libraries:\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']
Verwenden von Pythons for Loop zum Lesen von Zeilen aus einer Datei
Um die Zeilen aus einer Textdatei einzulesen, könnten Sie auch die verwenden for
Schleife.
Sobald Sie ein Dateiobjekt haben, können Sie es verwenden for
-Schleife, um den Inhalt der Datei zu durchlaufen – eine Zeile nach der anderen – und sie wie unten gezeigt auszudrucken. 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: Bei Verwendung von Python
print()
Funktion, das Standardtrennzeichen ist ein Zeilenumbruch—'\n'
Charakter. Aber in der Originaldatei haben wir diese neuen Zeilen nicht. Setzen Sie also das Trennzeichenargument auf eine leere Zeichenfolge:end = ''
um den Inhalt der Datei unverändert zu drucken.
How to Read Chunks of Content from File in Python
In Python, können Sie den Inhalt der Datei auch in kleinen Abschnitten einlesen.
Lesen Sie den folgenden Code durch:
- Hier setzen wir die
chunk_size
zu50
. Das bedeutet, dass die ersten 50 Zeichen der Datei eingelesen und von uns auch ausgedruckt werden.
- Rufen Sie jetzt an
tell()
-Methode für das Dateiobjektf
. Sie können sehen, dass sich der Dateizeiger jetzt an Position 51 befindet – was wie erwartet ist.
chunk_size = 50
with open('lib.txt','r') as f:
chunk = f.read(chunk_size)
print(chunk)
current = f.tell()
print(f"Current position of file pointer: {current}")
# Output
Hello, there!
Here are a few helpful Python librar
Current position of file pointer: 51
Sie können diese Technik auch verwenden, um die gesamte Datei in kleinen Abschnitten einzulesen.
Das folgende Code-Snippet 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='')
# Output
Hello, there!
Here are a few helpful Python libraries:
1) NumPy
2) pandas
3) matplotlib
4) seaborn
5) scikit-learn
6) BeautifulSoup
7) Scrapy
8) nltk
9) Bokeh
10) statsmodels
Hier verwenden wir a while
Schleife, um den Inhalt der Datei zu lesen. Wir lesen den Inhalt der Datei in Blöcken der Größe 50 ein, bis wir das Ende der Datei erreichen. ✅
How to Write to File in Python
Um in Python in eine Textdatei zu schreiben, sollten Sie diese im Schreibmodus öffnen – unter Angabe 'w'
.

Das folgende Code-Snippet zeigt, wie es geht.
with open('new_file.txt','w') as f:
f.write('Hello, Python!')
Das wirst du sehen 'new_file.txt'
wurde in Ihrem Arbeitsverzeichnis erstellt.
Führen Sie nun die obige Codezelle erneut aus.
Führen Sie in Ihrem Terminal den folgenden Befehl aus:
cat new_file.txt
# Output: Hello, Python!
Im Idealfall haben wir zweimal in die Datei geschrieben. Damit Hello, Python!
hätte zweimal gedruckt werden sollen, ja?
Aber Sie werden sehen, dass es nur einmal gedruckt wurde. Nun, das liegt daran, dass Sie beim Öffnen einer Datei in schreiben (w
)-Modus, Sie im Grunde überschreiben den Inhalt der Datei mit neuem Inhalt.
Wenn Sie möchten, hinzufügen bis zum Ende der Datei, ohne vorhandenen Inhalt zu überschreiben, sollten Sie die Datei im anhängen Modus. Wie das geht, erfahren Sie im nächsten Abschnitt.
How to Append to File in Python
Wenn Sie Inhalte an eine Datei anhängen möchten, ohne sie zu überschreiben, öffnen Sie sie im anhängen Modus arbeiten können.
Verwenden Sie dazu `'a'
-a aufgrund anhängen– und geben Sie den Modus explizit an.
Führen Sie als Nächstes die folgende Codezelle zweimal aus.
with open('new_file.txt','a') as f:
f.write('Hello, Python!')
Beachten Sie, wie der Text jetzt zweimal ausgedruckt wird, da wir ihn an die Datei angehängt haben.
cat new_file.txt
# Output: Hello, Python!Hello, Python!
Fazit
Lassen Sie uns kurz zusammenfassen, was wir in diesem Tutorial besprochen haben.
- Sie haben die gängigen Datei-I/O-Vorgänge wie Lesen, Schreiben und Anhängen an eine Datei kennengelernt.
- Darüber hinaus haben Sie auch gelernt, wie Sie die verwenden suchen() Methode, um den Dateizeiger an eine bestimmte Position zu verschieben, und
- wie man das nutzen sagen() Methode zum Abrufen der aktuellen Position des Dateizeigers.
Ich hoffe, Sie fanden dieses Tutorial hilfreich. Nachdem Sie nun gelernt haben, wie Sie mit Textdateien in Python arbeiten, erfahren Sie, wie es geht mit JSON-Dateien in Python arbeiten.
Related:
Prüfen Sie die Länge einer Liste in Python in 3 Schritten.