Filenotfonderror: [Errno 2] No such file or directory [duplicate]

Cette question a déjà une réponse ici:

  • Python open() donne IOError: Errno 2 Aucun fichier ou répertoire 5 réponses

j'essaie d'ouvrir un fichier CSV mais pour une raison quelconque, python ne peut pas le localiser.

Voici mon code (c'est juste un code simple mais je ne peux pas résoudre le problème):

import csv

with open('address.csv','r') as f:
    reader = csv.reader(f)
    for row in reader:
        print row
19
demandé sur embert 2014-03-09 17:25:26

7 réponses

Vous utilisez un chemin d'accès relatif, ce qui signifie que le programme recherche le fichier dans le répertoire de travail. L'erreur vous dit qu'il n'y a pas de fichier de ce nom dans le répertoire de travail.

essayez d'utiliser le chemin exact, ou absolu.

19
répondu David Heffernan 2015-06-17 17:10:14

Lorsque vous ouvrez un fichier avec le nom address.csv, vous dites la open() fonction que votre fichier est dans le répertoire courant. C'est ce qu'on appelle un chemin relatif.

Pour vous donner une idée de ce que cela signifie, ajoutez ceci à votre 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 '%s': %s" % (cwd, files))

qui affichera le répertoire courant ainsi que tous les fichiers qu'il contient.

une Autre façon de raconter l' open() fonction d'où se trouve votre fichier est en utilisant un chemin absolu, par exemple:

f = open("/Users/foo/address.csv")
16
répondu tsroten 2014-03-09 14:20:28

essayez d'enlever le".csv' du nom du fichier, ou en ajouter un dans le fonction d'ouverture. a travaillé pour moi.

4
répondu Ahmad Mohammad 2017-12-17 09:29:11

pour les personnes qui ont encore une erreur malgré le chemin absolu, devraient vérifier que si le fichier a un nom valide. Pour moi, j'essayais de créer un fichier avec '/' dans le nom du fichier. Dès que j'ai supprimé '/', j'ai pu créer le fichier.

3
répondu Rajat Soni 2018-09-19 06:17:21

Utilisez le chemin exact.

import csv

with open('C:\path\address.csv','r') as f:
    reader = csv.reader(f)
    for row in reader:
        print row
2
répondu Dinesh 2014-03-09 13:43:39

disons que nous avons un script dans "c:\script.py" qui contiennent:

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

disons que l'index.fichier html est également dans le même répertoire "c:\index.HTML" quand j'exécute le script depuis cmd (ou shell)

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

Vous obtiendrez une erreur:

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

et cela parce que "index.html" n'est pas dans le répertoire de travail qui est "C:\Users\Amine>". donc, pour que cela fonctionne, vous devez changer le répertoire de travail

C:\python script.py

'<html><head></head><body></body></html>'

C'est pourquoi est-il préférable d'utiliser un chemin absolu.

0
répondu Aouffen 2017-02-20 22:15:29
with open(fpath, 'rb') as myfile:
    fstr = myfile.read()

je rencontre cette erreur car le fichier est vide. Cette réponse peut ne pas être une réponse correcte pour cette question, mais devrait donner aux développeurs un indice comme moi.

0
répondu Bowen Xu 2018-08-29 02:59:57