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
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.
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")
essayez d'enlever le".csv' du nom du fichier, ou en ajouter un dans le fonction d'ouverture. a travaillé pour moi.
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.
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
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.
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.