FileNotFoundFehler: [Errno 2] Datei oder Verzeichnis existiert nicht [duplicate]
Lesezeit: 4 Minuten
Benutzer3266816
Ich versuche, eine CSV-Datei zu öffnen, aber Python kann sie aus irgendeinem Grund nicht finden.
Hier ist mein Code (es ist nur ein einfacher Code, aber ich kann das Problem nicht lösen):
import csv
with open('address.csv','r') as f:
reader = csv.reader(f)
for row in reader:
print row
Ist address.csv im selben Ordner wie Ihr Python-Code (.py)? Sie verwenden einen relativen Pfad. Wenn dies nicht der Fall ist, müssen Sie einen vollständigen Pfad angeben, z C:folderfolderaddress.csv
– Cory Kramer
9. März 14 um 13:29 Uhr
Wenn du den genauen Fehler posten könntest, wäre es einfach zu beantworten.
– Srivatsan
9. März 14 um 13:33 Uhr
@Cyber Die Datei ist nicht relativ zu dem Verzeichnis, das den Quellcode enthält. Es ist relativ zum Arbeitsverzeichnis. Zufällig können diese Verzeichnisse gleich sein, aber es ist wichtig, genau zu sein.
– David Heffernan
9. März 14 um 13:35 Uhr
Ich habe vergessen, die Erlaubnis zu schreiben, danach füge ich “wb” hinzu und arbeite ordnungsgemäß. Danke
– Saiful-Islam
28. Dezember 19 um 2:03 Uhr
tsroten
Wenn Sie eine Datei mit dem Namen öffnen address.csvdu erzählst das open() Funktion, dass sich Ihre Datei im aktuellen Arbeitsverzeichnis befindet. Dies wird als relativer Pfad bezeichnet.
Um Ihnen eine Vorstellung davon zu geben, was das bedeutet, fügen Sie Folgendes zu Ihrem Code hinzu:
import os
cwd = os.getcwd() # Get the current working directory (cwd)
files = os.listdir(cwd) # Get all the files in that directory
print("Files in %r: %s" % (cwd, files))
Dadurch wird das aktuelle Arbeitsverzeichnis zusammen mit allen darin enthaltenen Dateien gedruckt.
Eine andere Art, das zu sagen open() Funktion, wo sich Ihre Datei befindet, ist die Verwendung eines absoluten Pfads, z. B.:
f = open("/Users/foo/address.csv")
David Heffernan
Sie verwenden einen relativen Pfad, was bedeutet, dass das Programm im Arbeitsverzeichnis nach der Datei sucht. Der Fehler sagt Ihnen, dass es keine Datei mit diesem Namen im Arbeitsverzeichnis gibt.
Versuchen Sie, den genauen oder absoluten Pfad zu verwenden.
Okay, das funktioniert, aber was ist, wenn Sie den Code verteilen möchten, damit die Leute ihn verwenden können? Sie können nicht erwarten, dass der absolute Pfad in diesem Szenario funktioniert, oder?
– Abhishta Gatya
8. Oktober 17 um 15:31 Uhr
@AbhishtaGatya, in diesem Fall müssen Sie Umgebungsvariablen einrichten, um das aktuelle Arbeitsverzeichnis zu lesen!
– Dr. Essen
9. August 18 um 7:36 Uhr
Rajat Soni
Für Leute, die trotz Übergabe des absoluten Pfads immer noch Fehler bekommen, sollten sie überprüfen, ob die Datei einen gültigen Namen hat. Für mich habe ich versucht, eine Datei mit “https://stackoverflow.com/” im Dateinamen zu erstellen. Sobald ich “https://stackoverflow.com/” entfernt habe, konnte ich die Datei erstellen.
Brad
with open(fpath, 'rb') as myfile:
fstr = myfile.read()
Ich stoße auf diesen Fehler, weil die Datei ist leer. Diese Antwort ist möglicherweise keine richtige Antwort auf diese Frage, aber hoffentlich kann sie einigen von Ihnen einen Hinweis geben.
Dinesh Reddy
Verwenden Sie den genauen Pfad.
import csv
with open('C:\path\address.csv', 'r') as f:
reader = csv.reader(f)
for row in reader:
print(row)
Wollen Sie sagen, dass immer absolute Pfade verwendet werden sollten und relative Pfade nicht verwendet werden sollten?
– David Heffernan
9. März 14 um 13:57 Uhr
NEIN. Ich sage, es ist besser, den absoluten Pfad zu verwenden. Wenn sich das Skript und die Eingabedatei beide im selben Verzeichnis befinden, sollte relativ funktionieren.
– Dinesh Reddy
10. März 14 um 12:44 Uhr
Es ist nicht besser, wenn Sie möchten, dass der Pfad relativ ist. Darüber hinaus ist es relativ zu der Arbeitsverzeichnis und das Skriptverzeichnis.
– David Heffernan
10. März 14 um 12:50 Uhr
Auffen
Nehmen wir an, wir haben ein Skript in “c:script.py”, das Folgendes enthält:
result = open("index.html","r")
print(result.read())
Nehmen wir an, die Datei index.html befindet sich auch im selben Verzeichnis “c:index.html”, wenn ich das Skript von cmd (oder Shell) ausführe.
C:UsersAmine>python c:script.py
Sie erhalten Fehler:
FileNotFoundError: [Errno 2] No such file or directory: 'index.html'
Und das, weil „index.html“ nicht im Arbeitsverzeichnis „C:UsersAmine>“ liegt. Damit es funktioniert, müssen Sie das Arbeitsverzeichnis ändern
Aus diesem Grund ist es vorzuziehen, absolute Pfade zu verwenden.
Wollen Sie sagen, dass immer absolute Pfade verwendet werden sollten und relative Pfade nicht verwendet werden sollten?
– David Heffernan
9. März 14 um 13:57 Uhr
NEIN. Ich sage, es ist besser, den absoluten Pfad zu verwenden. Wenn sich das Skript und die Eingabedatei beide im selben Verzeichnis befinden, sollte relativ funktionieren.
– Dinesh Reddy
10. März 14 um 12:44 Uhr
Es ist nicht besser, wenn Sie möchten, dass der Pfad relativ ist. Darüber hinaus ist es relativ zu der Arbeitsverzeichnis und das Skriptverzeichnis.
– David Heffernan
10. März 14 um 12:50 Uhr
.
7576700cookie-checkFileNotFoundFehler: [Errno 2] Datei oder Verzeichnis existiert nicht [duplicate]yes
Ist
address.csv
im selben Ordner wie Ihr Python-Code (.py)? Sie verwenden einen relativen Pfad. Wenn dies nicht der Fall ist, müssen Sie einen vollständigen Pfad angeben, zC:folderfolderaddress.csv
– Cory Kramer
9. März 14 um 13:29 Uhr
Wenn du den genauen Fehler posten könntest, wäre es einfach zu beantworten.
– Srivatsan
9. März 14 um 13:33 Uhr
@Cyber Die Datei ist nicht relativ zu dem Verzeichnis, das den Quellcode enthält. Es ist relativ zum Arbeitsverzeichnis. Zufällig können diese Verzeichnisse gleich sein, aber es ist wichtig, genau zu sein.
– David Heffernan
9. März 14 um 13:35 Uhr
Ich habe vergessen, die Erlaubnis zu schreiben, danach füge ich “wb” hinzu und arbeite ordnungsgemäß. Danke
– Saiful-Islam
28. Dezember 19 um 2:03 Uhr