Truc informatique

Du tableur a la chaine CSV

Tu as un petit echantillon dans Google Sheets et tu veux le contenu d'un fichier CSV directement dans ton code, sans rien televerser ? Voici comment fabriquer la donnee, puis l'emballer en chaine Python avec des \n.

1. Fabriquer ton echantillon dans Google Sheets

Plutot que de taper des donnees a la main, laisse une formule les inventer. Tape la formule dans la premiere cellule, puis tire la poignee de recopie (le petit carre en bas a droite de la cellule) vers le bas pour remplir autant de lignes que tu veux.

Ce que tu veuxFormule (Sheets en francais)Formule (Sheets en anglais)
Un entier au hasard (hauteur, age...) =ALEA.ENTRE.BORNES(5;30) =RANDBETWEEN(5;30)
Un decimal au hasard (mesure precise) =ARRONDI(ALEA()*25+5;1) =ROUND(RAND()*25+5;1)
Des numeros 1, 2, 3... (identifiants) =SEQUENCE(30) =SEQUENCE(30)
Tirer un mot dans une liste (espece, nom) =CHOISIR(ALEA.ENTRE.BORNES(1;3);"Erable";"Pin";"Bouleau") =CHOOSE(RANDBETWEEN(1;3);"Erable";"Pin";"Bouleau")
Une date au hasard dans la derniere annee =AUJOURDHUI()-ALEA.ENTRE.BORNES(0;365) =TODAY()-RANDBETWEEN(0;365)
  1. Mets une premiere rangee d'en-tetes (les noms de colonnes) : espece, hauteur, age. Ce seront les titres de ton CSV.
  2. Sous chaque en-tete, tape la formule qui convient (voir le tableau). Une cellule suffit.
  3. Tire la poignee de recopie vers le bas : la formule se recopie et chaque ligne tire un nouveau hasard. Tu as ton echantillon.

Astuce : figer les valeurs

Une formule comme ALEA() se recalcule a chaque modification. Pour figer tes nombres une fois contente : selectionne tout, copie (Ctrl + C), puis colle par-dessus en valeurs seules (Ctrl + Maj + V). Les formules deviennent de simples nombres.

Pour des recettes de generation plus poussees, vois aussi le truc Fabriquer des donnees dans un tableur.

2. Du tableur a la chaine : etape par etape

Maintenant, transformons cet echantillon en une chaine Python. Avance pas a pas :

Etape 1 - Ta feuille Google Sheets

ABC
especehauteurage
Erable1840
Pin2465
Bouleau1225

Etape 2 - Exporter en CSV : Fichier ▸ Telecharger ▸ .csv

espece,hauteur,age Erable,18,40 Pin,24,65 Bouleau,12,25

Le CSV, c'est juste du texte : une ligne par rangee, des virgules entre les colonnes.

Etape 3 - Coller en chaine Python (un retour de ligne = \n)

Chaque passage a la ligne du fichier devient un \n dans la chaine. Tout le fichier tient sur une seule ligne de code.

Etape 1 sur 3 : on part de la feuille de calcul.

3. A toi : colle ton CSV, recupere la chaine

Colle ici le texte de ton CSV (ouvre le fichier telecharge avec un editeur de texte, ou colle directement les cellules copiees). La chaine Python se fabrique toute seule en dessous.

Chaine Python (a coller dans ton code)

4. A quoi sert cette chaine ?

C'est la cle des exercices « cree le fichier, puis lis-le » : tu mets le contenu dans une chaine, et tu n'as plus besoin de televerser quoi que ce soit. Deux usages :

A. Ecrire un vrai fichier, puis le relire (comme au jour 4) :

contenu = "espece,hauteur,age\nErable,18,40\nPin,24,65\nBouleau,12,25\n"

# on cree le fichier
with open("foret.csv", "w", encoding="utf-8") as fichier:
    fichier.write(contenu)

# on le relit comme n'importe quel fichier
with open("foret.csv", encoding="utf-8") as fichier:
    print(fichier.read())

B. Lire la chaine directement, sans meme creer de fichier (pratique pour tester) :

import io, csv

contenu = "espece,hauteur,age\nErable,18,40\nPin,24,65\nBouleau,12,25\n"

lecteur = csv.DictReader(io.StringIO(contenu))
for rangee in lecteur:
    print(rangee["espece"], rangee["hauteur"])

Pour situer ce fichier dans Colab et comprendre ou il atterrit, vois le truc Les trois espaces de fichiers.