In den folgenden Abschnitten wird erklärt, wie man eine neue Datei in Python erstellt und speichert, wobei ein neues Verzeichnis (Ordner) als Ziel verwendet wird.
- Fehler bei der Angabe eines nicht existierenden Verzeichnisses mit open()(
FileNotFoundError
) os.makedirs()
Ein Verzeichnis erstellen- Beispielcode zum Erstellen einer neuen Datei mit einem Ziel
Im Folgenden finden Sie ein Beispiel für eine Textdatei.
Bei der Speicherung von Bildern hängt es von der Bibliothek ab, ob Sie einen Pfad angeben können, der ein nicht vorhandenes Verzeichnis enthält (oder ob sie automatisch eines erstellt, wenn es nicht existiert).FileNotFoundError
Wenn dieser Fehler auftritt, können Sie ein neues Verzeichnis mit os.madeirs() erstellen, bevor Sie die Funktion zum Speichern ausführen, wie im folgenden Beispiel.
Fehler bei der Angabe eines nicht existierenden Verzeichnisses mit open()(FileNotFoundError)
Beim Erstellen einer neuen Datei mit der eingebauten Funktion open() tritt ein Fehler auf, wenn als erstes Argument ein Pfad mit einem neuen Verzeichnis (ein nicht existierendes Verzeichnis) als Ziel angegeben wird.(FileNotFoundError
)
open('not_exist_dir/new_file.txt', 'w')
# FileNotFoundError
Das erste Argument von open() kann ein absoluter Pfad oder ein Pfad relativ zum aktuellen Verzeichnis sein.
Für die grundlegende Verwendung von open(), wie z.B. das Erstellen einer neuen Datei in einem bestehenden Verzeichnis oder das Überschreiben oder Anhängen an eine bestehende Datei, lesen Sie den folgenden Artikel.
Ein Verzeichnis erstellen(os.makedirs())
Wenn eine neue Datei in einem nicht existierenden Verzeichnis erstellt wird, muss das Verzeichnis vor open() erstellt werden.
Wenn Sie Python 3.2 oder höher verwenden, ist es praktisch, os.makedirs() mit dem Argument exist_ok=True zu benutzen. Selbst wenn das Zielverzeichnis bereits existiert, tritt kein Fehler auf und das Verzeichnis kann sofort erstellt werden.
import os
os.makedirs(new_dir_path, exist_ok=True)
Wenn Sie eine ältere Version von Python haben und das Argument exist_ok in os.makedirs() nicht vorhanden ist, erhalten Sie einen Fehler, wenn Sie den Pfad zu einem Verzeichnis angeben, das bereits existiert. Verwenden Sie daher os.path.exists(), um zuerst die Existenz des Verzeichnisses zu überprüfen.
if not os.path.exists(new_dir_path):
os.makedirs(new_dir_path)
Weitere Informationen finden Sie im folgenden Artikel.
Beispielcode zum Erstellen einer neuen Datei mit einem Ziel
Es folgt ein Codebeispiel für eine Funktion, die eine neue Datei erstellt und speichert, indem sie das Zielverzeichnis angibt.
Das erste Argument dir_path ist der Pfad des Zielverzeichnisses, das zweite Argument filename ist der Name der neu zu erstellenden Datei und das dritte Argument file_content ist der zu schreibende Inhalt, jeweils angegeben als String.
Wenn das angegebene Verzeichnis nicht existiert, erstellen Sie ein neues.
import os
def save_file_at_dir(dir_path, filename, file_content, mode='w'):
os.makedirs(dir_path, exist_ok=True)
with open(os.path.join(dir_path, filename), mode) as f:
f.write(file_content)
Verwenden Sie wie folgt.
save_file_at_dir('new_dir/sub_dir', 'new_file.txt', 'new text')
In diesem Fall wird die Datei new_file.txt mit dem Inhalt “new text” in new_dir\sub_dir erstellt. Mit anderen Worten, die folgende Datei wird neu erstellt.new_dir/sub_dir/new_file.txt
Verkettung von Verzeichnis- und Dateinamen mit os.path.join().
Auch der Modus von open() wird als Argument angegeben. Für Textdateien ist der Standardmodus 'w' ausreichend, aber wenn Sie eine Binärdatei erstellen wollen, setzen Sie mode='wb'.