Create Files (Dateien erstellen)
Kurz: Das programmatische Anlegen einer neuen, leeren Datei im Dateisystem — die Grundoperation, bevor überhaupt etwas in eine Datei geschrieben werden kann.
Genauer: Beim Erstellen muss ein Programm typischerweise entscheiden, was passieren soll, wenn eine Datei mit demselben Namen bereits existiert (überschreiben, Fehler werfen oder anhängen) — dieses Verhalten wird meist über einen Modus-Parameter gesteuert. Fehlende Schreibrechte im Zielverzeichnis sind eine häufige Fehlerquelle beim Erstellen von Dateien.
Im Detail
Die meisten Sprachen kennen für das Öffnen/Erstellen einer Datei mehrere Modi, die genau festlegen, wie mit einer bereits existierenden Datei gleichen Namens umgegangen wird:
"w" (write) - Datei anlegen, existierenden Inhalt komplett überschreiben
"x" (exclusive) - nur anlegen, wenn sie noch NICHT existiert -> Fehler bei Kollision
"a" (append) - anlegen falls nötig, sonst an bestehenden Inhalt anhängenDer "x"-Modus (exklusives Erstellen) ist besonders wichtig, wenn eine versehentliche Überschreibung fatale Folgen hätte — z. B. beim Anlegen einer Konfigurationsdatei, die nicht aus Versehen eine bereits vorhandene, vom Nutzer angepasste Version überschreiben soll.
try:
with open("neue_datei.txt", "x") as f:
f.write("Erster Inhalt")
except FileExistsError:
print("Datei existiert bereits - wird NICHT überschrieben")Neben dem Namenskonflikt gibt es weitere typische Fehlerquellen beim Erstellen:
- Fehlende Berechtigungen im Zielverzeichnis (das Betriebssystem erlaubt dem Programm nicht, dort Dateien anzulegen).
- Nicht existierendes Zielverzeichnis — anders als man erwarten könnte, legen die meisten Dateisystem-Funktionen fehlende übergeordnete Ordner NICHT automatisch mit an, das muss meist explizit vorher passieren.
- Ungültige Dateinamen — reservierte Namen oder verbotene Zeichen unterscheiden sich je nach Betriebssystem (Windows verbietet z. B.
:,*,?in Dateinamen und reserviert bestimmte Namen wieCONoderAUXkomplett, unabhängig von der Dateiendung).
Nach dem Anlegen ist eine Datei zunächst leer — das eigentliche Befüllen mit Inhalt passiert im nächsten Schritt über Write Files.
Siehe auch: Files, Write Files