FileNotFoundError: [Errno 2] Geen dergelijk bestand of map

Ik probeer een CSV-bestand te openen, maar om de een of andere reden kan Python het niet vinden.

Hier is mijn code (het is maar een simpele code, maar ik kan het probleem niet oplossen):

import csv
with open('address.csv','r') as f:
    reader = csv.reader(f)
    for row in reader:
        print row

Antwoord 1, autoriteit 100%

Wanneer u een bestand opent met de naam address.csv, vertelt u de functie open()dat uw bestand zich in de huidige werkdirectory bevindt. Dit wordt een relatief pad genoemd.

Om je een idee te geven van wat dat betekent, voeg je dit toe aan je code:

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))

Dat zal de huidige werkmap samen met alle bestanden erin afdrukken.

Een andere manier om de functie open()te vertellen waar uw bestand zich bevindt, is door een absoluut pad te gebruiken, bijvoorbeeld:

f = open("/Users/foo/address.csv")

Antwoord 2, autoriteit 26%

U gebruikt een relatief pad, wat betekent dat het programma het bestand zoekt in de werkdirectory. De fout geeft aan dat er geen bestand met die naam in de werkdirectory staat.

Probeer het exacte of absolute pad te gebruiken.


Antwoord 3, autoriteit 9%

Voor mensen die nog steeds een foutmelding krijgen ondanks het doorgeven van een absoluut pad, moeten ze controleren of het bestand een geldige naam heeft. Voor mij probeerde ik een bestand te maken met ‘/’ in de bestandsnaam. Zodra ik ‘/’ verwijderde, kon ik het bestand maken.


Antwoord 4, autoriteit 4%

with open(fpath, 'rb') as myfile:
    fstr = myfile.read()

Ik kom deze fout tegen omdat het bestand leeg is. Dit antwoord is misschien niet het juiste antwoord op deze vraag, maar zou ontwikkelaars een hint moeten geven zoals ik.


Antwoord 5

Gebruik het exacte pad.

import csv
with open('C:\\path\\address.csv', 'r') as f:
    reader = csv.reader(f)
    for row in reader:
        print(row)

Antwoord 6

Laten we zeggen dat we een script hebben in “c:\script.py” dat het volgende bevat:

result = open("index.html","r")
print(result.read())

Laten we zeggen dat het bestand index.html zich ook in dezelfde map “c:\index.html” bevindt
wanneer ik het script uitvoer vanuit cmd (of shell)

C:\Users\Amine>python c:\script.py

Je krijgt een foutmelding:

FileNotFoundError: [Errno 2] No such file or directory: 'index.html'

En dat omdat “index.html” niet in de werkmap staat die “C:\Users\Amine>” is. dus om het te laten werken moet je de werkdirectory veranderen

C:\python script.py
'<html><head></head><body></body></html>'

Daarom verdient het de voorkeur om een absoluut pad te gebruiken.

Other episodes