Qu'y a-t-il vraiment dans un fichier ? Octets, ASCII, UTF-8#
Un fichier, quel qu'il soit - texte, image, tableur - n'est qu'une suite d'octets. Un octet est un nombre entier de 0 a 255. Le texte que tu lis n'existe pas vraiment sur le disque : c'est une convention qui dit "le nombre 65, ca correspond a la lettre A". Sans cette convention partagee, une suite d'octets ne veut rien dire.
ASCII : la premiere convention (1963)
ASCII (American Standard Code for Information Interchange) a ete publie en 1963. Il utilise 7 bits, ce qui permet de coder exactement 128 caracteres : les lettres anglaises, les chiffres, la ponctuation, et quelques codes de controle (saut de ligne, tabulation, etc.).
Quelques reperes a retenir :
| Caractere | Code decimal | Code hexadecimal | Note |
|---|---|---|---|
| Espace | 32 | 0x20 | le premier caractere imprimable |
'0' | 48 | 0x30 | le chiffre zero (pas le nombre nul) |
'A' | 65 | 0x41 | debut des majuscules |
'a' | 97 | 0x61 | debut des minuscules (+32 par rapport a 'A') |
Astuce : ord('A') donne 65 en Python, et chr(65) redonne 'A'. Pratique pour comprendre ce qu'il se passe sous le capot !
Le tableau complet des caracteres imprimables (codes 32 a 126)
Genere dynamiquement en JavaScript. Chaque cellule montre : code decimal, code hexadecimal, caractere.
Unicode et UTF-8 : le monde entier (1992)
ASCII ne couvre que l'anglais. Pour l'accente, le japonais, l'arabe, les emoji - il fallait plus. Unicode assigne un numero unique a chaque caractere de toutes les langues du monde. UTF-8 est la facon de stocker ces numeros en octets : il a ete concu par Ken Thompson et Rob Pike en 1992.
UTF-8 est malin : les 128 premiers caracteres (l'ASCII original) restent codes sur 1 seul octet, exactement comme avant. C'est un encodage retro-compatible. Les caracteres accentues francais prennent 2 octets, les caracteres asiatiques 3 octets, certains emoji 4 octets.
Le bug des accents : le mojibake
Le mojibake (mot japonais, "caracteres transformes") se produit quand un fichier encode en UTF-8 est lu comme si c'etait du Latin-1 (ISO-8859-1). Le mot foret (avec accent) devient forêt, et le seul e (2 octets en UTF-8) est interprete comme deux caracteres Latin-1 distincts.
Sur Linux et macOS la valeur par defaut est generalement UTF-8, mais sur certains Windows le systeme utilise Windows-1252 ou Latin-1. Mieux vaut toujours preciser.
Demo - Encodage UTF-8 et lecture erronee (mojibake)
Ecris un mot avec des accents. La demo montre les octets UTF-8 reels et ce qu'on lirait si on interpretait ces octets en Latin-1 (ISO-8859-1).
A quoi ressemble vraiment un JSON et un XML#
Le cours presente CSV, JSON et XML comme trois fagons de stocker des donnees structurees. Voici les memes donnees - un inventaire de deux arbres - dans les trois formats, pour comparer visuellement.
| Format | Points forts | Usage typique |
|---|---|---|
| CSV | Ultra-compact, lisible dans un tableur | Donnees tabulaires, exportations, data science |
| JSON | Structure, leger, supporte l'imbrication | APIs web, configuration, echanges entre serveurs |
| XML | Tres descriptif, balises explicites, validation stricte | Documents bureau (docx, odt), flux RSS, systemes d'entreprise |
En Python, lire un JSON ne prend qu'une ligne apres l'importation du module :
import json with open("foret.json", encoding="utf-8") as fichier: donnees = json.load(fichier) # donnees devient une liste de dictionnaires Python print(donnees[0]["espece"]) # erableLes donnees ouvertes : la foret en chiffres#
Les donnees ouvertes (ou open data) sont des jeux de donnees reels, publics et gratuits, mis en ligne par des gouvernements, des universites ou des organismes publics. Ce ne sont pas des exemples inventes - ce sont de vraies mesures de terrain.
Ou trouver des donnees au Quebec
Donnees Quebec (donneesquebec.ca) est le portail officiel du gouvernement du Quebec. On y trouve des centaines de jeux de donnees : transport, sante, environnement, education.
Dans le domaine forestier, le Quebec produit un inventaire ecoforestier : un recensement systematique des forets, avec l'essence des arbres, la densite, la superficie, les perturbations recentes (coupe, incendie, epidEmie de la tordeuse). C'est exactement le genre de fichier CSV que tu pourrais charger avec les outils du cours.
2. Chercher un sujet qui t'interesse
3. Telecharger le fichier CSV
4.
open("fichier.csv", encoding="utf-8") comme dans le cours5. Tracer un graphique (pont vers le jour 5 !)
Pourquoi c'est important
| Domaine | Ce qu'on peut faire avec des donnees ouvertes |
|---|---|
| Science citoyenne | Verifier les affirmations des politiciens avec les vrais chiffres |
| Data-journalisme | Raconter une histoire chiffree (Le Devoir, Radio-Canada font ca) |
| Recherche | Croiser plusieurs jeux de donnees pour trouver des correlations |
| Sciences appliqueEs | Modeliser, predire, simuler a partir de donnees de terrain reelles |
Le terme data-journalisme designe la pratique consistant a analyser des donnees publiques pour produire des articles d'enquete. Des equipes comme celle du New York Times ou de Radio-Canada utilisent exactement les memes outils que ce que tu apprends : Python, CSV, graphiques.
ouvert.canada.ca - portail federal canadien
data.montreal.ca - donnees de la Ville de Montreal
kaggle.com/datasets - jeux de donnees de la communaute data science