Geekflare wird von unserem Publikum unterstützt. Wir können Affiliate-Provisionen durch den Kauf von Links auf dieser Website verdienen.
Teilen:

Umgang mit Dateien in Python

Python-Hosting
Invicti Web Application Security Scanner – die einzige Lösung, die eine automatische Verifizierung von Schwachstellen mit Proof-Based Scanning™ bietet.

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 aufzurufen file.
  • Als nächstes nennen wir die read() Methode auf file.
  • 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.

python-read-file

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 verwenden seek() 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 zu 50. 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 Dateiobjekt f. 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'.

python-in-datei schreiben

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.

Danke an unsere Sponsoren
Weitere großartige Lektüre zum Thema Entwicklung
Treiben Sie Ihr Geschäft an
Einige der Tools und Dienste, die Ihr Unternehmen beim Wachstum unterstützen.
  • Invicti verwendet das Proof-Based Scanning™, um die identifizierten Schwachstellen automatisch zu verifizieren und innerhalb weniger Stunden umsetzbare Ergebnisse zu generieren.
    Versuchen Sie es mit Invicti
  • Web-Scraping, Wohn-Proxy, Proxy-Manager, Web-Unlocker, Suchmaschinen-Crawler und alles, was Sie zum Sammeln von Webdaten benötigen.
    Versuchen Sie es mit Brightdata
  • Semrush ist eine All-in-One-Lösung für digitales Marketing mit mehr als 50 Tools in den Bereichen SEO, Social Media und Content-Marketing.
    Versuchen Sie es mit Semrush
  • Intruder ist ein Online-Schwachstellenscanner, der Cyber-Sicherheitslücken in Ihrer Infrastruktur findet, um kostspielige Datenschutzverletzungen zu vermeiden.
    MIT DER INTELLIGENTEN SCHADENKALKULATION VON Intruder