Semaine 2 · Jour 4 · 420-SN1

ACCÉDER AUX DONNÉES
DANS COLAB

Du web, de GitHub, de Drive, de Kaggle ou de Hugging Face - jusque dans /content

Le ! : parler à Linux depuis Colab

PréfixeSert à
(rien)du code Python normal
!une commande Linux (shell)
%une commande magique Colab (ex. %cd)
!ls # lister les fichiers !pip install ... # installer un paquet %cd dossier # changer de dossier

Dans une cellule Colab, ! exécute une commande Linux au lieu de Python. C'est la clé pour télécharger, dézipper et installer directement depuis le carnet.

Du web : !wget

Une image
!wget "https://.../rose.jpg"
Une archive .tar.gz
!wget "https://.../data.tar.gz" !tar -xzvf data.tar.gz -C images/

wget télécharge un fichier accessible par une URL dans /content. Les jeux de données arrivent souvent en archive (.tar.gz, .tgz) : on les décompresse ensuite avec tar -xzvf.

Un jeu zippé d'un coup : !curl

!curl -L "https://universe.roboflow.com/ds/XXXX?key=..." > data.zip !unzip data.zip !rm data.zip

curl -L suit les redirections et enregistre le téléchargement dans un fichier (> data.zip). Pratique pour les exports d'outils comme Roboflow. On dézippe puis on efface l'archive pour gagner de la place.

Dézipper : Linux ou Python

En Linux
!unzip data.zip -d donnees/
En Python
from zipfile import ZipFile with ZipFile("data.zip") as zip: zip.extractall("donnees/")

Deux façons d'extraire une archive zip : la commande Linux !unzip, ou le module Python zipfile (utile quand le dézippage fait partie du programme).

Un dépôt GitHub : !git clone

# Dépôt public !git clone https://github.com/auteur/projet.git # Un seul fichier : via le lien "Raw" !wget "https://raw.githubusercontent.com/auteur/projet/main/data.csv"

git clone copie tout le dépôt dans /content. Pour un seul fichier, on prend son lien Raw et un simple wget suffit.

Dépôt privé : le mot de passe ne marche plus (GitHub, 2021). Il faut un token d'accès personnel : git clone https://<TOKEN>@github.com/.... Le plus simple reste un dépôt public si les données ne sont pas confidentielles.

Installer un projet complet

!git clone https://github.com/WongKinYiu/yolov7 %cd yolov7 !pip install -r requirements.txt

Beaucoup de projets d'IA se déploient en trois gestes : cloner le dépôt, entrer dedans (%cd), puis installer ses dépendances listées dans requirements.txt. On est prêt à entraîner.

Ton Google Drive : drive.mount

from google.colab import drive drive.mount("/content/drive") # tes fichiers sont alors sous : open("/content/drive/MyDrive/donnees/foret.csv")

drive.mount branche tout ton Drive dans /content/drive : un popup te demande d'autoriser l'accès, et c'est fait. Contrairement à /content (éphémère), le Drive est permanent - parfait pour garder ses données entre deux séances.

(L'ancien module pydrive et le collage d'un « authorization code » ne sont plus nécessaires.)

Un fichier Drive public : gdown

!pip install gdown import gdown # l'identifiant est dans le lien de partage Drive gdown.download(id="1f-2cBH1Sj0g8_z0ycfCVXw8a5GZMfq6", output="data.zip")

Pour récupérer un fichier Drive partagé sans monter tout le Drive, gdown le télécharge en une ligne à partir de son identifiant (la longue chaîne dans le lien de partage). Bien plus simple que l'ancien pydrive.

Kaggle (1) : récupérer sa clé

1. kaggle.com → ton profil → Settings
2. Section API → Create New Token
3. ça télécharge kaggle.json (ta clé)
4. téléverse kaggle.json dans /content
# contenu de kaggle.json {"username": "toncompte", "key": "xxxxxxxxxxxx"}

Kaggle s'utilise par une API authentifiée : on récupère d'abord son fichier-clé kaggle.json depuis son compte, qu'on dépose dans Colab. Ne le partage jamais - c'est ton mot de passe.

Kaggle (2) : installer l'API et télécharger

!pip install kaggle !mkdir ~/.kaggle !cp /content/kaggle.json ~/.kaggle/ !chmod 600 ~/.kaggle/kaggle.json !kaggle datasets download auteur/le-dataset --unzip -p /content/donnees/

On installe l'outil, on place la clé au bon endroit (~/.kaggle/) avec les bons droits (chmod 600), puis une seule commande télécharge ET dézippe le jeu de données (--unzip) dans le dossier voulu (-p).

Hugging Face : load_dataset

!pip install datasets from datasets import load_dataset jeu = load_dataset("mnist") print(jeu["train"][0]) # une image + son label

Le Hub Hugging Face est devenu la grande bibliothèque de jeux de données en IA. load_dataset("nom") télécharge, met en cache et structure les données en une ligne - texte, images, audio. Incontournable aujourd'hui.

Lire une URL directement (pandas / requests)

Un CSV tabulaire
import pandas as pd tableau = pd.read_csv("https://.../foret.csv")
N'importe quel contenu
import requests reponse = requests.get("https://.../data.json") donnees = reponse.json()

Pas toujours besoin de télécharger un fichier sur le disque : pandas.read_csv accepte une URL comme un chemin local, et requests récupère n'importe quel contenu du web (JSON, texte, binaire).

Depuis ton ordinateur : files.upload()

from google.colab import files envoye = files.upload() # ouvre une fenêtre de choix

Pour un petit fichier qui est sur ta machine, files.upload() ouvre une fenêtre de sélection et le dépose dans /content. Rapide pour dépanner - mais comme tout /content, c'est éphémère.

Quelle méthode pour quelle source ?

La donnée est...Outil
un fichier sur le web!wget · !curl · pandas.read_csv(url)
un dépôt de code!git clone
dans ton Google Drivedrive.mount · gdown
un dataset Kagglekaggle datasets download
un dataset connu (IA)datasets.load_dataset
sur ton ordinateurfiles.upload()

Le réflexe : d'où vient la donnée ? Chaque source a son outil. Et rappel : tout ce qui atterrit dans /content disparaît au redémarrage - le Drive ou un re-téléchargement garantit de ne rien reperdre.

À TON CARNET !

Choisis une source, ramène son jeu de données dans /content, et affiche les premières lignes
⤺ Refermer le diaporama