Fichiers inaccessibles avec Panda

fichiers CSV et xlsx, excel 2016

a marqué ce sujet comme résolu.

Bonjour tous,

je ne parviens pas à ouvrir des fichiers avec panda. Le chemin semble être mauvais malgré les copies dans propriété du fichier

Peut-être que je m’y prend mal et j’ai une vieille version d’excel (2016). C’est un peu nul comme problème. Je sais. Merci de votre aide

df_gapminder = pd.read_csv('C:/Users/babette/Desktop/doc_databird/gapminder.csv')
df_gapminder
message d'erreur:
--------------------------------------------------------------------------
FileNotFoundError                         Traceback (most recent call last)
Cell In[41], line 1
----> 1 df_gapminder = pd.read_csv('C:/Users/babette/Desktop/doc_databird/gapminder.csv')
      2 df_gapminder

File /opt/conda/envs/anaconda-2024.02-py310/lib/python3.10/site-packages/pandas/io/parsers/readers.py:948, in read_csv(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, 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, date_format, dayfirst, cache_dates, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, doublequote, escapechar, comment, encoding, encoding_errors, dialect, on_bad_lines, delim_whitespace, low_memory, memory_map, float_precision, storage_options, dtype_backend)
    935 kwds_defaults = _refine_defaults_read(
    936     dialect,
    937     delimiter,
   (...)
    944     dtype_backend=dtype_backend,
    945 )
    946 kwds.update(kwds_defaults)
--> 948 return _read(filepath_or_buffer, kwds)

File /opt/conda/envs/anaconda-2024.02-py310/lib/python3.10/site-packages/pandas/io/parsers/readers.py:611, in _read(filepath_or_buffer, kwds)
    608 _validate_names(kwds.get("names", None))
    610 # Create the parser.
--> 611 parser = TextFileReader(filepath_or_buffer, **kwds)
    613 if chunksize or iterator:
    614     return parser

File /opt/conda/envs/anaconda-2024.02-py310/lib/python3.10/site-packages/pandas/io/parsers/readers.py:1448, in TextFileReader.__init__(self, f, engine, **kwds)
   1445     self.options["has_index_names"] = kwds["has_index_names"]
   1447 self.handles: IOHandles | None = None
-> 1448 self._engine = self._make_engine(f, self.engine)

File /opt/conda/envs/anaconda-2024.02-py310/lib/python3.10/site-packages/pandas/io/parsers/readers.py:1705, in TextFileReader._make_engine(self, f, engine)
   1703     if "b" not in mode:
   1704         mode += "b"
-> 1705 self.handles = get_handle(
   1706     f,
   1707     mode,
   1708     encoding=self.options.get("encoding", None),
   1709     compression=self.options.get("compression", None),
   1710     memory_map=self.options.get("memory_map", False),
   1711     is_text=is_text,
   1712     errors=self.options.get("encoding_errors", "strict"),
   1713     storage_options=self.options.get("storage_options", None),
   1714 )
   1715 assert self.handles is not None
   1716 f = self.handles.handle

File /opt/conda/envs/anaconda-2024.02-py310/lib/python3.10/site-packages/pandas/io/common.py:863, in get_handle(path_or_buf, mode, encoding, compression, memory_map, is_text, errors, storage_options)
    858 elif isinstance(handle, str):
    859     # Check whether the filename is to be opened in binary mode.
    860     # Binary mode does not support 'encoding' and 'newline'.
    861     if ioargs.encoding and "b" not in ioargs.mode:
    862         # Encoding
--> 863         handle = open(
    864             handle,
    865             ioargs.mode,
    866             encoding=ioargs.encoding,
    867             errors=errors,
    868             newline="",
    869         )
    870     else:
    871         # Binary mode
    872         handle = open(handle, ioargs.mode)

FileNotFoundError: [Errno 2] No such file or directory: 'C:/Users/babette/Desktop/doc_databird/gapminder.csv'

j’ai essayé avec r:

df_gapminder = pd.read_csv(r'C:/Users/babette/Desktop/doc_databird/gapminder.csv')
df_gapminder

message d’erreur:

---------------------------------------------------------------------------
FileNotFoundError                         Traceback (most recent call last)
Cell In[43], line 1
----> 1 df_gapminder = pd.read_csv(r'C:/Users/babette/Desktop/doc_databird/gapminder.csv')
      2 df_gapminder

File /opt/conda/envs/anaconda-2024.02-py310/lib/python3.10/site-packages/pandas/io/parsers/readers.py:948, in read_csv(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, 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, date_format, dayfirst, cache_dates, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, doublequote, escapechar, comment, encoding, encoding_errors, dialect, on_bad_lines, delim_whitespace, low_memory, memory_map, float_precision, storage_options, dtype_backend)
    935 kwds_defaults = _refine_defaults_read(
    936     dialect,
    937     delimiter,
   (...)
    944     dtype_backend=dtype_backend,
    945 )
    946 kwds.update(kwds_defaults)
--> 948 return _read(filepath_or_buffer, kwds)

File /opt/conda/envs/anaconda-2024.02-py310/lib/python3.10/site-packages/pandas/io/parsers/readers.py:611, in _read(filepath_or_buffer, kwds)
    608 _validate_names(kwds.get("names", None))
    610 # Create the parser.
--> 611 parser = TextFileReader(filepath_or_buffer, **kwds)
    613 if chunksize or iterator:
    614     return parser

File /opt/conda/envs/anaconda-2024.02-py310/lib/python3.10/site-packages/pandas/io/parsers/readers.py:1448, in TextFileReader.__init__(self, f, engine, **kwds)
   1445     self.options["has_index_names"] = kwds["has_index_names"]
   1447 self.handles: IOHandles | None = None
-> 1448 self._engine = self._make_engine(f, self.engine)

File /opt/conda/envs/anaconda-2024.02-py310/lib/python3.10/site-packages/pandas/io/parsers/readers.py:1705, in TextFileReader._make_engine(self, f, engine)
   1703     if "b" not in mode:
   1704         mode += "b"
-> 1705 self.handles = get_handle(
   1706     f,
   1707     mode,
   1708     encoding=self.options.get("encoding", None),
   1709     compression=self.options.get("compression", None),
   1710     memory_map=self.options.get("memory_map", False),
   1711     is_text=is_text,
   1712     errors=self.options.get("encoding_errors", "strict"),
   1713     storage_options=self.options.get("storage_options", None),
   1714 )
   1715 assert self.handles is not None
   1716 f = self.handles.handle

File /opt/conda/envs/anaconda-2024.02-py310/lib/python3.10/site-packages/pandas/io/common.py:863, in get_handle(path_or_buf, mode, encoding, compression, memory_map, is_text, errors, storage_options)
    858 elif isinstance(handle, str):
    859     # Check whether the filename is to be opened in binary mode.
    860     # Binary mode does not support 'encoding' and 'newline'.
    861     if ioargs.encoding and "b" not in ioargs.mode:
    862         # Encoding
--> 863         handle = open(
    864             handle,
    865             ioargs.mode,
    866             encoding=ioargs.encoding,
    867             errors=errors,
    868             newline="",
    869         )
    870     else:
    871         # Binary mode
    872         handle = open(handle, ioargs.mode)

FileNotFoundError: [Errno 2] No such file or directory: 'C:/Users/babette/Desktop/doc_databird/gapminder.csv'

Merci merci de toute façon :B

Edité par Artragis: pour mettre en forme comme j’ai fais il faut mettre trois accents grave (alt-GR + 7)

+0 -0

Salut,

Windows cache parfois les extensions de fichiers connus, donc il est possible que le fichier soit réellement nommé gapminder.csv.csv.

Tu peux lister le contenu du dossier en utilisant le code suivant:

import os
print(os.listdir('C:/Users/babette/Desktop/doc_databird/'))

Cela devrait te permettre de verifier quels fichiers existent dans le dossier ou s’il y a une erreur dans le nom du dossier.

Le nom de la bibliothèque est pandas et non panda. 🐼

Aussi ton message est difficile à lire sans le formatage. Je t’invite à poster ton code et tes erreurs dans des messages de bloc de codes afin de garder les sauts de ligne et le formage.

Le problème semble effectivement être simplement un problème de nom de fichier. Tu peux aussi utiliser l’invite de commande pour vérifier le nom des fichiers.

Bon courage.

+0 -0

j’ai aussi essayé:

import os
test_file = '"C:\\Users\\babette\\Desktop\\databird\\databird\\python\\session_15\\pandas\\gapminder.csv"'
os.path.realpath(test_file)

sortie:
'/home/c34535e5-12b3-47d9-b943-2806ae3671ff/"C:\\Users\\babette\\Desktop\\databird\\databird\\python\\session_15\\pandas\\gapminder.csv"'


je ne sais pas ce que c'est : /home/c34535e5-12b3-47d9-b943-2806ae3671ff

Salut romantik

la première fois que j’ai installé python, je me suis trompé et j’ai pris la version linux mais je l’ai désinstallé et normalement, j’ai celle pour Windows pythonw.exe. Alors je ne sais pas si je comprends bien la question. Je ne maitrise pas le langage informatique non plus

+0 -0

Donc pour exécuter, tu double-clic sur le fichier dans l’explorateur de fichier ou tu lances une console python puis tu appelles ton script dedans ?

je ne sais pas ce que c’est : /home/c34535e5–12b3–47d9-b943–2806ae3671ff

Babs

Je te pose ces questions car c’est un chemin de fichier type UNIX (soit Linux), dans le répertoire d’un utilisateur 'c34535e5–12b3–47d9-b943–2806ae3671ff' qui a l’air auto généré. C’est le chemin par défaut dans lequel se trouve le terminal quand l’utilisateur se connecte, et comme ton chemin ne ressemble pas à un chemin absolu en linux, il te le concatène à la suite du chemin courant.
Depuis Windows 10, microsoft a intégré un système Linux à Windows, c’est le WSL (Windows Subsystem for Linux) et l’intégration s’est encore accru avec Windows 11. Lorsque tu double clic sur un exécutable Linux, Windows va le lancer avec WSL de lui-même. Et je suspecte que c’est ce qu’il fait avec ton python. Tu dois pouvoir configurer les programmes par défaut pour les fichiers de type python dans les options systemes de Windows et lui indiquer d’utiliser pythonw.exe (bien que ce soit étrange que l’installation ne l’ai pas fait pour toi)

+0 -0

Il semble que tu exécutes ton script dans un environnement unix et pas directement dans Windows.

Aussi tu sembles utiliser anaconda. Utilises-tu un IDE par hasard ?

+0 -0

Je viens de comprendre que tu utilises l’interpréteur interactif.
Je crois qu’un screenshot serait plus parlant pour nous montrer ce que tu as, où tu te trouves dans l’interface anaconda, de quelle console tu parles etc…
Peux tu partager une telle image où on voit ton environnement conda et ton interpréteur python ?

Quoi qu’il en soit, j’ai l’impression que tu essaies de faire quelque chose sans acquerir les bases. Je te recommanderais quand même de suivre un tuto pour les apprendre. Et on en a un super écrit par le très bon entwanne.

+1 -0

Tu as raisons sur tout les points. En effet, j’était sur l’interpréteur interactif. J’ai super honte. Je suis des cours en ligne (qui m’ont couté une blinde) mais je n’ai pas les bases alors c’est difficile. Par ailleurs j’ai un travail à plein temps donc pas trop de temps. Enfin, je ne suis peut-être pas le couteau le mieux aiguisé du tiroir. Je suis maintenant en vacances. Je vais en profiter pour essayer de rattraper un peu tout ça. Merci pour tes conseilles. Je vais lire les écrits d’entwanne. Merci encore. j’aurai certainement encore plein de questions

J’ai super honte.

Babs

Oh non, y’a pas à avoir honte d’être débutant, ni à utiliser l’interpreteur interactif qui peut s’avérer très utile !
C’est juste qu’on a du mal à communiquer puisqu’on est pas sur la même longueur d’onde.

Puis je suppose que ton "travail plein temps" est donc sans rapport avec le developpement. Rends toi compte que c’est plutôt rare les personnes qui font preuve d’une telle curiosité pour sortir autant de leur zone de confort (ou d’avoir le courage de faire une reconversion professionnelle si c’est ce dont il s’agit). Tu devrais plutôt en être fier.

Je sais que tu viens de dire que tu n’avais pas trop de temps, désolé mais j’allais t’ajouter une lecture qui peut être intéressante à lire avant : Les bases de la programmation. Alors que mon premier lien était spécifique à python et par quel bout le tenir, celui ci te donnera plus de contexte sur ce qu’est la programmation.

Les cours en ligne peuvent rester interessante si t’as un suivi/un accompagnement. Aussi s’il y a des exercices et travaux pratiques, c’est ce qui manque à nos contenus ici.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte