4.3 KiB
30 Tage Python: Tag 19 - Dateiverarbeitung (File Handling)
Autor:
Asabeneh Yetayeh
Zweite Edition: Juli 2021
📘 Tag 19
Dateiverarbeitung
Bisher haben wir Daten nur im Arbeitsspeicher gehalten. Um Daten dauerhaft zu speichern, nutzen wir Dateien. Python bietet die eingebaute Funktion open(), um Dateien zu erstellen, zu lesen, zu aktualisieren und zu löschen.
# Syntax
open('dateiname', modus)
Die verschiedenen Modi:
"r"(Read): Standardwert. Öffnet zum Lesen. Fehler, wenn Datei fehlt."a"(Append): Fügt am Ende hinzu. Erstellt Datei, falls nötig."w"(Write): Überschreibt den Inhalt. Erstellt Datei, falls nötig."x"(Create): Erstellt neue Datei. Fehler, wenn Datei bereits existiert."t"(Text): Standardwert (Textmodus)."b"(Binary): Binärmodus (z. B. für Bilder).
Dateien zum Lesen öffnen
Es wird empfohlen, das with-Statement zu nutzen, da es die Datei automatisch schließt.
with open('./files/beispiel.txt') as f:
inhalt = f.read()
print(inhalt)
Methoden zum Lesen:
read(): Liest die gesamte Datei als String.readline(): Liest nur die erste Zeile.readlines(): Liest alle Zeilen und gibt eine Liste zurück.
Dateien zum Schreiben und Aktualisieren öffnen
# Hinzufügen (Append)
with open('./files/beispiel.txt', 'a') as f:
f.write('\nDieser Text wird hinten angehängt.')
# Überschreiben (Write)
with open('./files/neu.txt', 'w') as f:
f.write('Dies ist eine neue Datei.')
Dateien löschen
Hierfür nutzen wir das os-Modul:
import os
if os.path.exists('test.txt'):
os.remove('test.txt')
Dateitypen
JSON-Dateien
JSON (JavaScript Object Notation) ist das Standardformat für den Datenaustausch im Web. In Python entspricht es fast exakt einem Dictionary.
json.loads(json_string): Wandelt JSON in ein Python-Dictionary um.json.dumps(dictionary): Wandelt ein Dictionary in einen JSON-String um.json.dump(data, file): Speichert Daten direkt in eine JSON-Datei.
CSV-Dateien
CSV (Comma Separated Values) speichert tabellarische Daten. Python hat dafür das csv-Modul.
XML-Dateien
XML ist ein strukturiertes Format (ähnlich wie HTML). Wir nutzen xml.etree.ElementTree, um XML zu verarbeiten.
💻 Übungen - Tag 19
Level 1
- Schreibe eine Funktion, die Zeilen und Wörter in einem Text zählt. Teste sie mit den Reden von Obama, Michelle Obama, Donald Trump und Melina Trump (Dateien im
data-Ordner). - Finde die 10 am häufigsten gesprochenen Sprachen aus der
countries_data.json. - Finde die 10 bevölkerungsreichsten Länder aus der
countries_data.json.
Level 2
- Extrahiere alle E-Mail-Adressen aus der Datei
email_exchange_big.txtals Liste. - Finde die häufigsten Wörter in der englischen Sprache basierend auf einer Textdatei.
- Vergleiche die Reden von Michelle Obama und Melina Trump auf Ähnlichkeit. (Tipp: Berechne die Worthäufigkeiten und vergleiche sie).
🎉 HERZLICEN GLÜCKWUNSCH! 🎉
