Séance 3 — Chemins, fichiers et ligne de commande#
Note
Les fichiers des TD de la séance sont dans l’archive info01-cours3.zip.
Objectifs#
Manipuler des chemins et lire des fichiers en Python, puis construire un programme en ligne de commande en Python. Les notions des cours 1 et 2 (chemin relatif, encodage, texte et binaire, lancer un programme, les options d’une commande, un commit par étape) reviennent, vues cette fois depuis le code.
Contenu de la séance#
Trois parties, chacune présentée par quelques diapositives, puis travaillée dans un TD. Les deux premières s’accompagnent d’un notebook autonome, commun à tous. Pour la troisième, chaque élève choisit un parcours : le parcours avancé écrit un programme lancé au terminal (TD 3f), le parcours standard écrit une recette en Markdown, mise en page par le programme du TD 3b (TD 3e).
Partie |
Ce qu’on y voit |
Durée |
|---|---|---|
Préparation du poste de travail |
récupérer l’archive du dossier partagé sur le Bureau ; copier les deux
notebooks dans |
10 min |
le programme de la recette, ses chemins construits avec |
20 min |
|
lire et écrire un fichier, |
30 min |
|
Une recette en Markdown, parcours standard |
la recette des gaufres, écrite en Markdown et ajoutée à un dépôt git de recettes, et sa page |
45 min |
Du notebook au programme, parcours avancé |
selon les groupes, l’environnement de la séance ; le notebook devient un
programme : un fichier, |
45 min, +15 min |
Les TD sont réunis, par partie, dans Travaux dirigés de la séance 3.
Avant la séance#
Les fichiers des TD sont dans l’archive cours3/ : un dossier par TD, avec
ses propres données et la feuille du TD en PDF. Python, JupyterLab, Pillow et
pandoc sont dans l’environnement base d’Anaconda. Selon les groupes, le TD
3f commence par créer un environnement de la séance, info01-cours3, en une
commande dans l’invite de commandes d’Anaconda.
L’archive vient du dossier partagé formationTemp ; elle se copie et se
décompresse dans le dossier info01 du Bureau (Récupérer les fichiers
d’une séance), et rien ne se fait dans le dossier
partagé ni depuis l’archive. Les notebooks, livrés dans depart/notebook/,
se copient dans travail/ avant d’être ouverts dans JupyterLab, depuis
Anaconda Navigator ou par jupyter lab dans l’invite de commandes d’Anaconda. Une ligne de
code terminée par # à compléter est à écrire en séance ; sa réponse est
repliée dans la cellule « Réponse » qui la suit, et la version complète est
distribuée après.
TD |
Fichier |
Ce qu’on y fait |
|---|---|---|
3b |
|
le code de génération de recette, ses chemins refaits avec |
3c |
|
comment le code de la recette ouvre, lit et écrit ses fichiers ; octets, ASCII et UTF-8, fin de ligne, mode binaire |
3d |
|
facultatif : un motif PGM de seize pixels en texte et en binaire, La Grande Vague en cinq formats, la compression |
3e |
|
parcours standard : la recette des gaufres, écrite en Markdown et ajoutée à un dépôt git de recettes, et sa page |
3f |
|
parcours avancé : le code du notebook dans un fichier, puis |
Les images sont libres : Under the Wave off Kanagawa
(The Met, CC0), photos de Wikimedia Commons créditées dans
recettes/CREDITS.md ; la photo des gaufres est dans le domaine public.
À retenir#
Un chemin relatif |
part du dossier courant : celui du notebook, ou celui du terminal |
|
le dossier du script, d’où qu’on le lance |
|
dans chaque lecture et chaque écriture de texte |
|
un programme externe, appelé depuis Python, en liste |
Un caractère |
un nombre ; ASCII en a 128, sur un octet ; UTF-8 écrit les autres sur deux à quatre |
|
les valeurs sur la ligne de commande, vérifiées, et l’aide de |
Un environnement conda |
un Python et ses paquets ; |