L'idée clé : une adresse directe, pas une page
Quand tu écris pd.read_csv(url), Python va chercher ce qui se trouve exactement à cette adresse. Il a besoin d'une URL qui pointe sur le contenu brut du fichier (les colonnes, les virgules), pas sur une jolie page web avec des menus et des boutons.
C'est tout le piège : le lien de partage que les sites te donnent par défaut ouvre une page. Il faut le transformer en lien direct.
Ouvert dans le navigateur, ça télécharge ou ça affiche du texte brut.
Ouvert dans le navigateur, ça montre une page avec des boutons.
Google Drive : du lien de partage au lien direct
La plus naturelle, parce que tu ranges déjà tes fichiers dans Drive.
- Dans Drive, clic droit sur ton fichier, puis Partager.
- Sous Accès général, choisis Tous les utilisateurs disposant du lien (rôle Lecteur). Sans ça, Python recevra une page de connexion.
- Clique sur Copier le lien. Tu obtiens une adresse du genre :
https://drive.google.com/file/d/1AbCdEfGhIjKlMnOp/view?usp=sharing - Repère l'identifiant entre
/d/et/view(ici1AbCdEfGhIjKlMnOp) et fabrique le lien direct :https://drive.google.com/uc?export=download&id=1AbCdEfGhIjKlMnOp
# Dans Colab import pandas as pd url = "https://drive.google.com/uc?export=download&id=1AbCdEfGhIjKlMnOp" donnees = pd.read_csv(url) print(donnees.head())
Si tu colles le lien de partage tel quel (celui qui finit par /view?usp=sharing) dans read_csv, Python télécharge la page HTML de Drive et plante avec une erreur incompréhensible. Transforme-le d'abord en lien uc?export=download.
Cette astuce marche bien pour les petits fichiers de données (quelques milliers de lignes). Pour un gros fichier, Drive ajoute une page d'avertissement antivirus : dans ce cas, Google Sheets ou GitHub sont plus simples.
Google Sheets : exporter en CSV
Si tes données sont dans un classeur Google Sheets, tu n'as même pas besoin d'exporter un fichier : Sheets sait servir une feuille directement en CSV.
- Ouvre ton classeur. Clique sur Partager et mets l'accès à Tous les utilisateurs disposant du lien (rôle Lecteur).
- Regarde l'adresse de ton classeur. Elle ressemble à :
https://docs.google.com/spreadsheets/d/1ClasseurXyz789/edit#gid=0
- Remplace
/edit#gid=0par/export?format=csv&gid=0:https://docs.google.com/spreadsheets/d/1ClasseurXyz789/export?format=csv&gid=0
Le
gididentifie l'onglet (le premier onglet est0). Tu le retrouves dans l'adresse quand tu cliques sur un autre onglet.
import pandas as pd url = "https://docs.google.com/spreadsheets/d/1ClasseurXyz789/export?format=csv&gid=0" donnees = pd.read_csv(url) print(donnees.head())
GitHub : le bouton Raw
Si tu as déposé ton fichier dans un dépôt GitHub (public), tu obtiens une URL stable et propre, parfaite pour un projet qu'on garde longtemps.
- Ouvre ton fichier sur GitHub. L'adresse contient
/blob/:https://github.com/utilisateur/depot/blob/main/donnees/mesures.csv
- Clique sur le bouton Raw (en haut à droite de l'affichage du fichier). L'adresse devient :
https://raw.githubusercontent.com/utilisateur/depot/main/donnees/mesures.csv
import pandas as pd url = "https://raw.githubusercontent.com/utilisateur/depot/main/donnees/mesures.csv" donnees = pd.read_csv(url) print(donnees.head())
Avantage : l'URL ne change pas, elle est lisible, et tout le monde peut la consulter sans connexion. C'est le choix le plus solide pour le projet.
Un dépôt express, sans compte
Besoin d'une URL tout de suite, sans créer de compte ? Des services de dépôt rapide te donnent une adresse directe en glissant un petit fichier.
- Va sur
catbox.moe, glisse ton fichier dans la zone, attends le téléversement. - Le site te rend une URL déjà directe :
https://files.catbox.moe/ab12cd.csv
import pandas as pd url = "https://files.catbox.moe/ab12cd.csv" donnees = pd.read_csv(url)
Pratique pour dépanner, mais ton fichier devient public (n'importe qui avec le lien peut le voir) et rien ne garantit qu'il restera là dans six mois. Pour quelque chose de durable, préfère Drive, Sheets ou GitHub.
Le test universel (avant de coder)
Peu importe la méthode, vérifie ton URL avant de la mettre dans Python :
- Copie ton URL et ouvre-la dans un onglet de navigation privée (pour être sûr de ne pas être aidé par ta propre connexion Google).
- Regarde ce qui s'affiche.
Le navigateur télécharge le fichier, ou il affiche du texte brut (des lignes pleines de virgules). C'est exactement ce que Python recevra.
Tu vois une vraie page web (logo, boutons, menus) ou une demande de connexion. Ce n'est pas un lien direct, ou le partage n'est pas ouvert : reprends les étapes de ta méthode.
À toi : colle ton lien, récupère l'URL directe
Colle un lien de partage Google Drive, Google Sheets ou GitHub. Le convertisseur te rend l'adresse directe et la ligne de code prête à coller. Tout se passe dans ta page, rien n'est envoyé.
Résultat