0Pricing
Python Academy · Lektion

Dateien mit der with-Anweisung verwenden

Stellen Sie mithilfe von Kontextmanagern sicher, dass Dateien automatisch geschlossen werden.

Dateien mit der with-Anweisung verwenden ist eine kostenlose Python Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Python Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Python Academy-Kurs umfasst insgesamt 4 Lektionen.

Einführung

Die with-Anweisung stellt sicher, dass Dateien automatisch geschlossen werden, auch wenn eine Ausnahme auftritt.

Die with-Anweisung

with open('file.txt') as f: ... schließt f automatisch, wenn der Block beendet wird – unabhängig davon, ob er normal oder aufgrund einer Ausnahme beendet wird.
# with open('data.txt') as f:
#     content = f.read()
# f is now closed
print('with demo')

Warum with besser ist als try/finally

Ohne with müssen Sie try: ... finally: f.close() schreiben, um das Schließen sicherzustellen. with erledigt dies automatisch.
# Equivalent to:
# f = open('file.txt')
# try:
#     content = f.read()
# finally:
#     f.close()
print('comparison demo')

Mehrere Dateien

with open('a.txt') as a, open('b.txt') as b: öffnet zwei Dateien in einer Anweisung.
# with open('in.txt') as src, open('out.txt','w') as dst:
#     for line in src:
#         dst.write(line.upper())
print('multi-file demo')

Protokoll des Kontextmanagers

with verwendet __enter__ und __exit__. open() gibt ein Dateiobjekt zurück, das diese Methoden implementiert. Später schreiben wir unseren eigenen Kontextmanager.
# f.__enter__() opens
# f.__exit__() closes
print('protocol demo')

Lesen und Verarbeiten

Kombinieren Sie with, for line in f: und .strip() für eine saubere Verarbeitung von Zeilen: Entfernen Sie Zeilenumbrüche und überspringen Sie leere Zeilen.
lines = ['  hello  \n', '  world  \n']
cleaned = [l.strip() for l in lines if l.strip()]
print(cleaned)

Schreiben mit with

with open('out.txt','w') as f: f.write('data') – die Datei wird geleert und geschlossen, wenn der Block verlassen wird.
# with open('out.txt', 'w') as f:
#     for i in range(10):
#         f.write(f'{i}\n')
print('write with demo')

Prüfen, ob eine Datei existiert

import os; os.path.exists('file.txt') gibt True zurück, wenn die Datei existiert. So verhindern Sie FileNotFoundError.
import os
print(os.path.exists('/tmp'))
print(os.path.exists('/nonexistent'))

Fehler von open()

FileNotFoundError: Die Datei existiert nicht. PermissionError: Es fehlen die Lese- oder Schreibberechtigungen. Verwenden Sie try/except für eine robuste Fehlerbehandlung.
try:
    with open('/nonexistent.txt') as f:
        pass
except FileNotFoundError as e:
    print('File not found:', e)

StringIO für Dateien im Arbeitsspeicher

from io import StringIO ermöglicht die Verwendung eines Strings als Dateiobjekt – ideal zum Testen von Code zur Dateiverarbeitung.
from io import StringIO
buf = StringIO('line1\nline2\n')
for line in buf:
    print(line.rstrip())

Das tempfile-Modul

tempfile.NamedTemporaryFile() erstellt eine temporäre Datei, die beim Schließen gelöscht wird. Das ist sicher für die Verarbeitung vorübergehender Daten.
import tempfile
with tempfile.NamedTemporaryFile(mode='w', suffix='.txt', delete=True) as f:
    f.write('temp data')
    print(f.name)

Schnellüberprüfung

Was garantiert die with-Anweisung bei der Verwendung mit Datei-E/A?

Zusammenfassung

with open(f) as h: schließt h automatisch. Verwenden Sie mehrere Ziele für mehrere Dateien. StringIO eignet sich für Tests im Arbeitsspeicher. Behandeln Sie FileNotFoundError ordnungsgemäß.

Weiter

Sehr gute Arbeit! Fahren Sie mit der nächsten Lektion fort, um weiter voranzukommen.

Häufig gestellte Fragen

Ist die Lektion „Dateien mit der with-Anweisung verwenden“ kostenlos?

Ja — der vollständige Text von „Dateien mit der with-Anweisung verwenden“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Python Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Python Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Dateien mit der with-Anweisung verwenden“?

Stellen Sie mithilfe von Kontextmanagern sicher, dass Dateien automatisch geschlossen werden. Du übst Python Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Python Academy zu starten?

Keine Vorkenntnisse erforderlich. Python Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.

Wie lange dauert die Lektion „Dateien mit der with-Anweisung verwenden“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Python Academy-Lektion Code schreiben und ausführen?

Ja. Jede Python Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Dateien öffnen und lesen
  2. In Dateien schreiben und an sie anhängen
  3. Dateien mit der with-Anweisung verwenden
  4. Mit Dateipfaden in pathlib arbeiten
← Zurück zu Python Academy