Python '[Errno 2] No such file or directory'?
Hallo,
Mein Code:
# Python 3.8.5 /Pycharm
from os import getcwd, mkdir
currentDirectory = getcwd()
InfoFile = open(currentDirectory + r"\MinecraftSevers\1.8\Info.txt", "w")
# w+ gibt den gleichen Fehler aus
InfoFile.write("ServerVersion 1.8")
InfoFile.close()
Die Fehlermeldung:
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\pacol\\PycharmProjects\\loveyou\\MinecraftSevers\\1.8\\Info.txt'
Kann mir Jemand bei dem Fehler helfen, ich finde es selbst nicht herraus..
MFG
1 Antwort
Vermutlich existiert das Verzeichnis
C:\Users\pacol\PycharmProjects\loveyou\MinecraftSevers\1.8
bei dir noch nicht, oder? (Das könnte natürlich auch an dem Schreibfehler „MinecraftSevers“ statt „MinecraftServers“ liegen.)
Denn open(...) kann zwar gegebenenfalls eine Datei erzeugen. Dazu muss das Verzeichnis, in dem die Datei erzeugt werden soll, aber bereits existieren.
Dementsprechend musst du erst sichergehen, dass das Verzeichnis existiert. Bzw. wenn es nicht existiert, musst du das Verzeichnis mit os.mkdir(...) bzw. os.makedirs(...) erzeugen. Im konkreten Fall würde ich os.makedirs(...) verwenden, da gegebenenfalls mehrere Verzeichnisebenen erstellt werden müssen. Mit os.mkdir(...) kann man hingegen nur eine Verzeichnisebene auf einmal erstellen.
Also beispielsweise so...
from os import getcwd, makedirs
currentDirectory = getcwd()
filePath = currentDirectory + r"\MinecraftServers\1.8"
makedirs(filePath, exist_ok=True)
InfoFile = open(filePath+"Info.txt", "w")
InfoFile.write("ServerVersion 1.8")
InfoFile.close()
Kleiner Fehler bei meinem Code: Ich habe einen Schrägstrich vergessen, so dass bei mir „...\1.8Info.txt“ statt „...\1.8\Info.txt“ entsteht.
from os import getcwd, makedirs
currentDirectory = getcwd()
filePath = currentDirectory + r"\MinecraftSevers\1.8"
makedirs(filePath, exist_ok=True)
InfoFile = open(filePath+r"\Info.txt", "w")
InfoFile.write("ServerVersion 1.8")
InfoFile.close()
Ich dank dir für deine Hilfe aber es war wirklich nur ein Typo.. Kann passieren, Danke für deine Antwort, bekommst Hilfreich!