0
votes

Pendant que je charge des données dans JupyterLab I, M Obtenez une erreur: "FilenotfoundError [Errno 2] n'existe pas

Je viens de heurter et que l'erreur que je n'ai jamais eu le code est la suivante:

---------------------------------------------------------------------------
FileNotFoundError                         Traceback (most recent call last)
<ipython-input-52-f31adf5ab280> in <module>
----> 1 data=pd.read_csv('Users\ergar\Desktop\ML-mini_bootcamp\W1')

~\anaconda3\lib\site-packages\pandas\io\parsers.py in parser_f(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, squeeze, prefix, mangle_dupe_cols, dtype, engine, converters, true_values, false_values, skipinitialspace, skiprows, skipfooter, nrows, na_values, keep_default_na, na_filter, verbose, skip_blank_lines, parse_dates, infer_datetime_format, keep_date_col, date_parser, dayfirst, cache_dates, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, doublequote, escapechar, comment, encoding, dialect, error_bad_lines, warn_bad_lines, delim_whitespace, low_memory, memory_map, float_precision)
    674         )
    675 
--> 676         return _read(filepath_or_buffer, kwds)
    677 
    678     parser_f.__name__ = name

~\anaconda3\lib\site-packages\pandas\io\parsers.py in _read(filepath_or_buffer, kwds)
    446 
    447     # Create the parser.
--> 448     parser = TextFileReader(fp_or_buf, **kwds)
    449 
    450     if chunksize or iterator:

~\anaconda3\lib\site-packages\pandas\io\parsers.py in __init__(self, f, engine, **kwds)
    878             self.options["has_index_names"] = kwds["has_index_names"]
    879 
--> 880         self._make_engine(self.engine)
    881 
    882     def close(self):

~\anaconda3\lib\site-packages\pandas\io\parsers.py in _make_engine(self, engine)
   1112     def _make_engine(self, engine="c"):
   1113         if engine == "c":
-> 1114             self._engine = CParserWrapper(self.f, **self.options)
   1115         else:
   1116             if engine == "python":

~\anaconda3\lib\site-packages\pandas\io\parsers.py in __init__(self, src, **kwds)
   1889         kwds["usecols"] = self.usecols
   1890 
-> 1891         self._reader = parsers.TextReader(src, **kwds)
   1892         self.unnamed_cols = self._reader.unnamed_cols
   1893 

pandas\_libs\parsers.pyx in pandas._libs.parsers.TextReader.__cinit__()

pandas\_libs\parsers.pyx in pandas._libs.parsers.TextReader._setup_parser_source()

FileNotFoundError: [Errno 2] File Users\ergar\Desktop\ML-mini_bootcamp\W1 does not exist: 'Users\\ergar\\Desktop\\ML-mini_bootcamp\\W1'


4 commentaires

Vous n'avez pas fourni le chemin correct vers le fichier.


Que comprenez-vous à partir de ce message d'erreur? S'il vous plaît voir Comment demander , Centre d'aide .


Je vote pour fermer cela une faute de frappe pour oublier le R (RAW) devant le chemin avec les backslashes de Windows OS. PD.READ_CSV (R'USERS \ ERGAR \ Desktop \ ml-mini_bootcamp \ w1 ') .


Est-ce que cela répond à votre question chemin Windows dans Python ?


3 Réponses :


0
votes

Vous devez mentionner l'extension de fichier, par exemple si votre fichier est .csv Utiliser: xxx


0 commentaires

0
votes

Le problème est que vous donnez un chemin relatif de l'interprète PY. Les chemins relatifs sont des chemins qui ne démarrent pas à la racine du système de fichiers - au lieu de cela, comme le nom le suggère, ils sont résolus par rapport à l'emplacement à partir duquel vous appelez votre programme (dans ce cas, votre ordinateur portable).

Il y a deux manières Vous pouvez résoudre ce problème.

Option d'une est d'utiliser un chemin absolu - pour Windows, démarrez sur C: \ ou une autre lettre de lecteur approprié - Votre cas, ce serait xxx

Option deux consiste à placer votre fichier dans le même dossier que votre ordinateur portable, puis à utiliser un chemin relatif: pd.read_csv ('w1.csv')

Notez que vous pouvez créer des sous-dossiers et organiser vos fichiers de manière à créer un sous-dossier de jeu de données, puis utiliser pd.read_csv (r'Datasets \ w1.csv ')

aussi, n'oubliez pas d'utiliser r'path \ to \ File' (chaînes de python brutes) Pour les chemins de style Windows, comme "\ 'est un caractère spécial utilisé pour des têtes comme de nouvelles lignes et des onglets et pourrait être mal interprété lorsqu'il est analysé comme une chaîne non brute.


4 commentaires

Merci, votre réponse avait raison aussi, mais ma question est de savoir pourquoi cela se produit? Depuis que j'ai toujours copié le chemin de Jupyterlab et j'ai travaillé juste, je dois maintenant copier le chemin du dossier (ne pas avoir de sens à travailler sur JupyterLab) et ajouter le R au début, comment puis-je assurer de travailler comme je l'habitude de travailler. ? À propos, il s'agit d'un fichier que j'ai téléchargé plusieurs fois simplement codant: data = pd.read_csv ("Utilisateurs \ \ \ \ \ ml-mini_bootcamp \ w1.cs v ')


Eh bien, le chemin comme vous avez écrit, c'est ce qu'on appelle un chemin relatif (il ne démarre pas à la racine du système de fichiers). Signification, si votre ordinateur portable ou votre serveur de laboratoire est en cours d'exécution, disons c: \, il peut trouver le chemin car il existe un C: \ utilisateurs \ ... - et si vous êtes positionné ailleurs, il ne peut pas trouver le déposer. Imaginez que je vous dise d'aller à la rue Python. S'il n'y a pas de rue Python dans votre ville, vous me direz qu'il n'y a pas de cette rue de cette ville. Mais si je te dis "Aller à la ville de Pandas, Street Python", vous saurez où chercher-la. :)


Merci Agian, mais pour éviter ce problème avec le chemin relatif, j'ai dans le même dossier, le cahier et l'ensemble de données. Est-ce suffisant? Parce que j'ai travaillé de cette façon et c'est la première fois que j'ai eu cette erreur.


J'ai mis à jour la réponse pour couvrir complètement ce que vous demandiez. J'apprécierais que si vous le marquiez comme une réponse acceptée. :)



1
votes

Essayez de faire cela, en supposant également que le nom de votre fichier CSV est w1 : xxx


1 commentaires

Merci. Je codis dans Windows / JupyterLab pourquoi je dois maintenant écrire + 'R' au début + le chemin complet (à partir du dossier actuel)? Je copie le chemin de Jupyterlab et j'ai bien fonctionné, que dois-je faire pour éviter cela et travailler directement sur JupyterLab comme je l'avais l'habitude?